JSON的解析

JSON的解析

张振亚-1222

5.JSON
JSON是欧洲制定的JS规范,是JavaScript规范里面的一个子集。
(1)
一本书
书名
简介

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中的任意类型的数据
(2)JSON可以无限嵌套,一个对象的属性可以是数组或对象,数组里还可以放对象。!
6.Gson和FastJson的使用

7.Json是以后工作中使用频率最高的知识点!!!

Gson:(谷歌的JSON解析)
(1)
public static void main(String[] args) {
//1. 创建Gson对象
Gson g = new Gson();
//2. 转换{“id”:“100”,“name”:“金苹果”,“info”:“种植苹果真辛苦”,“page”:[“锄禾日当午”,“汗滴禾下土”,“嘿嘿嘿嘿嘿”]}
Book b = g.fromJson("{“id”:“100”,“name”:“金苹果”,“info”:“种植苹果真辛苦”}", Book.class); //将Json对象的格式转化为Book类型的对象
System.out.println(b.getId()); //打印将Json转换为Book类型的对象以后的ID

    //转
    HashMap data = g.fromJson("{\"id\":\"100\",\"name\":\"金苹果\",\"info\":\"种植苹果真辛苦\"}", HashMap.class);   //可以将Json对象的格式转化为HashMap类型的对象!
    System.out.println(data.get("id"));   //转换成为HashMap类型以后由键获取其对应的值。

}

(2)
public static void main(String[] args) {
//1. 创建Gson对象
Gson g = new Gson();
//2.将Json对象里的一个属性的值写成数组!!!(这个属性的键还是String)
HashMap data = g.fromJson("{“id”:“100”,“name”:“金苹果”,“info”:“种植苹果真辛苦”,“page”:[“锄禾日当午”,“汗滴禾下土”,“嘿嘿嘿嘿嘿”]}", HashMap.class);
System.out.println(data.get(“page”));
System.out.println(data.get(“page”).getClass()); //在你的Json对象里包含的有数组部分,其转换成(HashMap类型)对象以后,数组部分被转化成了ArrayList类型(List集合)
List page = (List) data.get(“page”);
System.out.println(page.get(1));
}

FastJson:(阿里的JSON解析)
(1)
//Book对象转JSON类型字符串
Book book = new Book(“1002”,“唐诗三百首”,“床前明月,地上鞋一堆。床上我杰哥,喊十块钱一双”);
//1. 转换
String json = JSON.toJSONString(book);
System.out.println(json);

(2)
//JSON类型字符串 转成数组或者转成对象 两种不一样
// 1.转对象用parseObject
Book book = JSON.parseObject("{“id”:“1002”,“info”:“床前明月,地上鞋一堆。床上我杰哥,喊十块钱一双”,“name”:“唐诗三百首”}",Book.class);
System.out.println(book.getId());
// 2.转数组用parseArray : [“一二三”,“二三四”,“三四五”]
List strings = JSON.parseArray("[“一二三”,“二三四”,“三四五”]", String.class);
System.out.println(strings.get(1));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值