Java基础学习——JSON 解析
(Java基础学习——JSON 解析)
JSON简介
JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
【百度百科】
JSON语法规则
- 对象由大括号表示,括号中通过键值对描述对象的属性;
- 键与值之间使用冒号连接,多个键值对之间用逗号分离;
- 键值对的键,用引号引住;
- 键值对的值,可以是JS中任意类型的数据
// 示例
{
"name":"哈利·波特",
"friends":["赫敏","罗恩",
{
"name":"小天狼星布莱克"
"status":"哈利的教父"}]
"wand":{
"length":"11英寸",
"details":"冬青木,杖芯是凤凰福克斯的尾毛"
}
}
JSON解析
引入JAR文件
Gson
由Google开发的, Java 语言实现的 JSON 解析器和生成器。
Gson JAR文件下载地址.
1.将对象转换成 GSON
//将对象转换成 GSON
Person p = new Person("哈利波特",
new String[]{"赫敏", "罗恩"},
new String[]{"11英寸","冬青木,杖芯是凤凰福克斯的尾毛"});
String s = new Gson().toJson(p);
System.out.println(s);
输出结果:
2.将JSON转换成对象
//将JSON转换成对象
Person p = new Gson().fromJson("{\"name\":\"哈利波特\",\"friends\":[\"赫敏\",\"罗恩\"],\"wand\":[\"11英寸\",\"冬青木,杖芯是凤凰福克斯的尾毛\"]}\n",Person.class);
System.out.println(p.getName());
System.out.println(p.getFriends()[0]);
System.out.println(p.getWand()[1]);
输出结果:
FastJson
由阿里巴巴的工程师开发的, Java 语言实现的 JSON 解析器和生成器。
FastJson JAR文件下载地址.
1.将对象转换成FastJson
//将对象转换成FastJson
Person p = new Person("哈利波特",
new String[]{"赫敏", "罗恩"},
new String[]{"11英寸","冬青木,杖芯是凤凰福克斯的尾毛"});
String fjson = JSON.toJSONString(p);
System.out.println(p);
输出结果:
2.将FastJson转换成对象
//将FastJson转换成对象
Person p = JSON.parseObject("{\"name\":\"哈利波特\",\"friends\":[\"赫敏\",\"罗恩\"],\"wand\":[\"11英寸\",\"冬青木,杖芯是凤凰福克斯的尾毛\"]}\n",Person.class);
System.out.println(p.getName());
System.out.println(p.toString());
输出结果: