Java基础学习——JSON 解析

(Java基础学习——JSON 解析)

JSON简介

JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
【百度百科】

JSON语法规则

  1. 对象由大括号表示,括号中通过键值对描述对象的属性;
  2. 键与值之间使用冒号连接,多个键值对之间用逗号分离;
  3. 键值对的键,用引号引住;
  4. 键值对的值,可以是JS中任意类型的数据
// 示例
{
	"name":"哈利·波特",
	"friends":["赫敏","罗恩",
			{
			"name":"小天狼星布莱克"
			"status":"哈利的教父"}]
	"wand":{
		"length":"11英寸",
		"details":"冬青木,杖芯是凤凰福克斯的尾毛"
	}
}

JSON解析

引入JAR文件

1
2
3
3.1
3.2
3.3
3.4
4

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());

输出结果:
在这里插入图片描述