JSON解析基础使用知识-Java
JSON解析基础使用知识
JSON格式
假设我们定义一本书
一本书有他的书名和内容,那么JSON数据如下
{"name":"诗经","info":"中国古代诗歌开端,最早的一部诗歌总集"
}
- 一个对象由一个大括号表示,括号中通过键值对的方式来描述对象的属性。
- 键值之间使用冒号连接、多个键值对之间使用逗号分隔,
- 键值对的键应使用引号包含(如果不使用引号,Java解析时通常会报错,但JS不会)
- 键值对的值可以是JS中任意类型数据
Gson
Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。可以将一个 JSON 字符串转成一个 Java 对象,或者反过来。
1、先创建一个类
构造方法、toString()、get()、set()等省略,免得太长
public class Book {//基本信息private String id;private String name;private String info;
}
2、将类转换为JSON格式
public class Demo1 {public static void main(String[] args) {//1. 创建一个Gson对象Gson g = new Gson();//2. 创建一个Book对象Book b = new Book("99","诗经","中国古代诗歌开端");//3. 通过toJson方法转换String s = g.toJson(b);//4. 输出验证System.out.println(s);Book b1 = new Book("100","聊斋","蒲松龄创作的文言短篇小说集");String s1 = new Gson().toJson(b1);System.out.println(s1);}
}
输出得到结果
3、将JSON格式转换为Book对象
public class Demo3 {public static void main(String[] args) {//1. 创建Gson对象Gson g = new Gson();//2. 通过fromJson方法将目标JSON格式字符串转换为Book对象Book b = g.fromJson("{\"id\":\"99\",\"name\":\"诗经\",\"info\":\"中国古代诗歌开端\"}",Book.class);Book b1 = g.fromJson("{\"id\":\"100\",\"name\":\"聊斋\",\"info\":\"蒲松龄创作的文言短篇小说集\"}",Book.class);//3. 输出诗经id,聊斋名字验证System.out.println(b.getId());System.out.println(b1.getName());}
}
输出得到结果
4、将JSON转换为Map
public class Demo2 {public static void main(String[] args) {//1. 创建Gson对象Gson g = new Gson();//2. 转换 : {"id":"100","name":"诗经","info":"中国古代诗歌开端","page":["如月之恒","如日之升"]}//以HashMap为对象HashMap data = g.fromJson("{\"id\":\"100\",\"name\":\"诗经\",\"info\":\"中国古代诗歌开端\",\"page\":[\"如月之恒\",\"如日之升\"]}", HashMap.class);//3. 用list集合接收pageList page = (List) data.get("page");//4. 输出验证System.out.println(page.get(1));}
}
输出的结果
FastJson
还是使用上面创建的Book对象
1、将类转换为JSON格式
public class Demo2 {public static void main(String[] args) {Book book = new Book("98","兰亭集序","流觞曲水,列坐其次");//1. 导入com.alibaba.fastjson.JSON后转换直接使用其中的toJSONString方法String s = JSON.toJSONString(book);//2. 输出验证System.out.println(s);}
}
输出得到结果
2、将JSON格式转换为Book对象
public class Demo2 {public static void main(String[] args) {//通过parseObject方法直接转换成BookBook book = JSON.parseObject("{\"id\":\"98\",\"info\":\"流觞曲水,列坐其次\",\"name\":\"兰亭集序\"}",Book.class);System.out.println(book.getId());}
}
输出结果验证
3、将JSON转换为数组
public class Demo4 {public static void main(String[] args) {//1. 转换数组:["流觞曲水","列坐其次","兰亭集序"]List<String> strings = JSON.parseArray("[\"流觞曲水\",\"列坐其次\",\"兰亭集序\"]", String.class);System.out.println(strings.get(0));}
}
输出验证
谢谢你的观看
JSON解析基础使用知识-Java相关推荐
- 视频教程-JSON入门基础视频课程-Java
JSON入门基础视频课程 Java讲师,多年培训经验,曾参与开发过的项目:某省电信ODS系统.电信自助取数系统.CRM客户关系管理系统.环境应急信息系统.自来水客服系统等.熟练掌握J2EE平台开发技能 ...
- java+解析未知json_在Java中解析JSON时如何忽略未知属性– Jackson @JsonIgnoreProperties注释示例...
java+解析未知json 使用Jackson API在Java中解析JSON时的常见问题之一是,当您的JSON包含未知属性(即您的Java类没有对应于所有JSON属性的所有字段)时,该操作将失败. ...
- java 自定义json解析注解 复杂json解析 工具类
java 自定义json解析注解 复杂json解析 工具类 目录 java 自定义json解析注解 复杂json解析 工具类 1.背景 2.需求-各式各样的json 一.一星难度json[json对象 ...
- Json解析完全解析
json解析算得上是Android开发中的家常便饭了,绝大部分的应用或多或少都会用到json解析,当然可能他们用的是Gson解析.其实Gson解析用起来确实比Json方便,但是不管怎样,熟练使用Jso ...
- Java基础知识第二讲:Java开发手册/JVM/集合框架/异常体系/Java反射/语法知识/Java IO
Java基础知识第二讲(Java编程规范/JVM/集合框架/异常体系/Java反射/语法知识/Java IO/码出高效) 分享在java学习及工作中,常使用的一些基础知识,本文从JVM出发,讲解了JV ...
- Java基础语法知识你真的都会吗?
第一阶段 JAVA基础知识 第二章 Java基础语法知识 在我们开始讲解程序之前,命名规范是我们不得不提的一个话题,虽说命名本应该是自由的,但是仍然有一定的"潜规则",通过你对命名 ...
- json 解析 转java对象数组对象数组对象_json字符串转java对象数组
需要引入json-lib-2.2-jdk15.jar和ezmorph-1.0.6.jar包 String itemStar = request.getParameter("itemStar& ...
- java json parser_自己实现JSON解析器 JsonParser
自己实现json parser,只有一个类,不依赖任何第三方工具. 背景 为什么要实现json解析器呢?在我实现一个rpc框架的过程中,注册中心部分使用consul,而consul的api是通过res ...
- Java七十四: Java基础/核心知识总结 — — “Java千字文”
Java基础/核心知识总结 - - "Java千字文" Java基础/核心知识笔记终于完结,从Java语言诞生到jdk8新特性,共计74篇博文,43幅自制插图,35张表格,7万6千 ...
最新文章
- NetDevOps — SNMP 协议
- boost::math::chebyshev_transform用法的测试程序
- idea下org.apache.commons.dbcp.BasicDataSourc找不到
- JavaWeb-SpringBoot(抖音)_二、服务器间通讯
- linux下mysql案例_Linux下安装MySQL多实例
- 关于几本模拟IC设计书
- datareader对象转化为int_【Angew. Chem. Int. Ed.】光催化丙二烯的去消旋反应
- 模型相关:SolidWorks创建Cube模型,在3DMax中给不同面添加不同颜色,导出自带纹理的FBX至Unity
- javascript的constructor属性介绍
- oracle中日期格式的注意事项
- 如何解决未能初始化战场服务器,microsoft net framework配置系统未能初始化
- 12个优秀的开源UML工具
- Sniffer的使用
- SpringBoot整合极光推送
- 华为服务器的系统,华为服务器系统
- 终端类型 xterm linux,Linux的终端类型
- dij最短路+堆优化
- 异构平台运维工作文档
- Linux系统文件服务
- sql 上一行减下一行_买大米时,不管什么牌子,只要包装袋上没这一行字,别买~...
热门文章
- 记一次replace into引发的死锁问题
- http://www.blogjava.net/beansoft/archive/2007/03/09/102812.html
- 互联网日报 | 新浪同意被私有化;吉利汽车科创板首发过会;滴滴货运日单量持续破10万...
- 如何用计算机放音乐,教你如何用iPhone远程遥控电脑播放音乐教程
- Java开发人员必须掌握的Linux命令(二)
- SDOI 2018二轮题解(除Day2T1)
- 《搜索》— NYOJ 42—一笔画问题
- C语言实现两个多项式加法与乘法
- 基于TIA博途的一阶滞后滤波+中位值滤波+堆栈平均值滤波算法SCL语言程序(封装FB库)
- Linux系统查看FC HBA卡信息的方法