JSON简介与解析方法(超级详细)

JSON简介与解析方法(超级详细)

1.什么是JSON?

要弄清楚JSON数据解析,首先我们需要知道什么是JSON。

简介: JSON: JavaScript Object Notation JS对象简谱 , 是一种轻量级的数据交换格式.

2.JSON对象格式

我们通过java,js,xml和json这几种不同的语言来描述一个对象 对象是book,它有两个属性,分别是name和info

java格式

> class Book{

> private String name;

> private String info;

> get/set...

> }

> Book b = new Book();

> b.setName(“金苹果”);

> b.setInfo(“种苹果”);

> ...

js格式

> var b = new Object();

> b.name = "金苹果";

> b.info = "种苹果";

XML格式

金苹果

种苹果

JSON格式

{

"name":"金苹果",

"info":"种苹果"

}

一个对象, 由一个大括号表示. 括号中 描述对象的属性 . 通过键值对来描述对象的属性 (可以理解为, 大括号中, 包含的是一个个的键值对.) 格式 键与值之间使用冒号连接, 多个键值对之间使用逗号分隔. 键值对的键 应使用引号引住 (通常Java解析时, 键不使用引号会报错. 而JS能正确解 析.) 键值对的值, 可以是JS中的任意类型的数据

数组格式

在JSON格式中可以与对象互相嵌套 [元素1,元素2…]

案例

{

"name":"小陈",

"age":20,

"pengyou":["张三","李四","王二","麻子",{

"name":"小明",

"info":"像彭于晏一样帅气的男人"

}],

"heihei":{

"name":"大长刀",

"length":"40m"

}

}

3.JSON数据解析

下面开始讲解如何使用IDEA将Java对象快速转换成JSON数据,和如何将JSON数据转换成Java对象

将Java中的对象 快速的转换为 JSON格式的字符串. 将JSON格式的字符串, 转换为Java的对象.

注意:

以下的导jar包操作如果不会,请去参考一些导jar包操作在文章的底部提供了有关的jar包,需要自取

GSON解析

将对象转换为JSON字符串

转换JSON字符串的步骤:

1. 引入JAR包

2. 在需要转换JSON字符串的位置编写如下代码即可:

String json = new Gson().toJSON(要转换的对象);

案例:

//1. 创建Gson类型的对象

Gson g = new Gson();

//2. 转换

//优化 可以使用匿名对象

book b = new book("100","金苹果","种植苹果的故事");

String s = g.toJson(b);

System.out.println(s);

将JSON字符串转换为对象

1. 引入JAR包

2. 在需要转换Java对象的位置, 编写如下代码:

//1. 创建Gson类型的对象

Gson g = new Gson();

//2. 转换 {"id":"100","name":"金苹果","info":"种植苹果的故事","page":["远赴人间惊鸿晏","一度人间盛世颜","致hdd"]}

//2.1 返回book类型

book b = g.fromJson("{\"id\":\"100\",\"name\":\"金苹果\",\"info\":\"种植苹果的故事\"}", book.class);

System.out.println(b.getId());

//2.2 返回MAP类型,键值对形式

HashMap hm = g.fromJson("{\"id\":\"100\",\"name\":\"金苹果\",\"info\":\"种植苹果的故事\"}", HashMap.class);

System.out.println(hm.get("id"));

//2.3 MAP类型中值是一个数组形式

HashMap data = g.fromJson("{\"id\":\"100\",\"name\":\"金苹果\",\"info\":\"种植苹果的故事\",\"page\":[\"远赴人间惊鸿晏\",\"一度人间盛世颜\",\"致hdd\"]}", HashMap.class);

List list = (List) data.get("page");

System.out.println(list.get(1));

FastJson解析

将对象转换为JSON字符串

转换JSON字符串的步骤:

1. 引入JAR包

2. 在需要转换JSON字符串的位置编写如下代码即可:

String json=JSON.toJSONString(要转换的对象);

案例:

book b = new book("1002","水浒传","讲述了一群讲义气的莽夫");

// 转换

String s = JSON.toJSONString(b);

System.out.println(s);

将JSON字符串转换为对象

1. 引入JAR包

2. 2. 在需要转换Java对象的位置, 编写如下代码:

类型 对象名=JSON.parseObject(JSON字符串, 类型.class);

或 List<类型> list=JSON.parseArray(JSON字符串,类型.class);

案例:

book b = new book("1002","水浒传","讲述了一群讲义气的莽夫");

//1. 转换 {"id":"1002","info":"讲述了一群讲义气的莽夫","name":"水浒传"} 转换成对象

book books = JSON.parseObject("{\"id\":\"1002\",\"info\":\"讲述了一群讲义气的莽夫\",\"name\":\"水浒传\"}", book.class);

System.out.println(books.getName());

System.out.println("========================================================");

//2. 转换成数组 ["人生本该自由","乘兴而去","尽兴而归"]

List strings = JSON.parseArray("[\"人生本该自由\",\"乘兴而去\",\"尽兴而归\"]", String.class);

for(String s:strings){

System.out.println(s);

}

结尾:以上两种解析JSON的方式对于小白来说应该是比较详细的,如果大家有什么问题,欢迎大家一起交流学习。

链接:https://pan.baidu.com/s/1n3VzsYpiDc0vE2W5y5dUyA 提取码:oqb9

你可能也喜欢

迅雷剛買的會員能退嗎?不能退怎麼申訴?
bat365官方登录中文

迅雷剛買的會員能退嗎?不能退怎麼申訴?

📅 06-29 👀 528
井陉豌豆农庄游玩攻略简介,井陉豌豆农庄门票/地址/图片/开放时间/照片/门票价格【携程攻略】
q房网租房靠谱吗?租房前要考虑什么?
det365娱乐官网登录

q房网租房靠谱吗?租房前要考虑什么?

📅 07-04 👀 1991
白下面一个本念什么?
det365娱乐官网登录

白下面一个本念什么?

📅 06-29 👀 1582
阴阳师八百比丘尼人偶在哪 踏月寻踪八百比丘尼人偶位置分享[多图]
品读毛泽东用过的几则民间话语
bat365官方登录中文

品读毛泽东用过的几则民间话语

📅 07-08 👀 9574