JSON解析

JSON解析

1、JSON介绍

JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。

2、JSON对比

假如我们有一个书的对象,书包括了书名和简介。那么我们要如何创建书的对象。

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:

<book>
    <name>西游记</name>
    <info>唐三藏师徒四人西天取经的故事</info>
</book>

JSON:

{
     "name":"西游记",
     "info":"唐三藏师徒四人西天取经的故事"
}

我们可以发现json创建对象比较简单。
一个对象,由一个大括号表示.。括号中描述对象的属性。通过键值对来描述对象的属性 (可以理解为,大括号中,包含的是一个个的键值对。)
格式:
键与值之间使用冒号连接,多个键值对之间使用逗号分隔。
键值对的键应使用引号引住 (通常Java解析时,键不使用引号会报错,而JS能正确解析。)
键值对的值,可以是JS中的任意类型的数据。
数组格式:
在JSON格式中可以与对象互相嵌套
[元素1,元素2…]
案例:

{
    "name":"张三",
    "age":18,
    "friend":["李四","王五",{
        "name":"野马老师",
        "info":"像匹野马一样狂奔在技术钻研的道路上"
        }],
    "heihei":{
        "name":"大长刀",
        "length":"40"
        }
}
3、JSON与Java

将Java中的对象快速的转换为 JSON格式的字符串。
将JSON格式的字符串,转换为Java的对象。
JSON主要使用有两种,分为Gson和FastJson,Gson是Google提供的用来在Java对象和JSON数据之间进行映射的 Java 类库,FastJson是阿里提供的用来在Java对象和JSON数据之间进行映射的 Java 类库。
(1)、Gson
将对象转换为JSON字符串
转换JSON字符串的步骤:
1.引入JAR包。
2.在需要转换JSON字符串的位置编写如下代码即可:
String json = new Gson().toJSON(要转换的对象);
案例:

		Book b = new Book("1001","西游记","唐三藏师徒四人西天取经的故事");
        String s = new Gson().toJson(b);
        System.out.println(s);

输出结果:
在这里插入图片描述
将JSON字符串转换为对象
1.引入JAR包
2.在需要转换Java对象的位置, 编写如下代码:
对象 = new Gson().fromJson(JSON字符串,对象类型.class);
案例:

		Gson g = new Gson();
        Book b = g.fromJson("{\"id\":\"1001\",\"name\":\"西游记\",\"info\":\"唐三藏师徒四人西天取经的故事\"}", Book.class);
        System.out.println(b);

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

(2)、FastJson
将对象转换为JSON字符串
转换JSON字符串的步骤:
1.引入JAR包
2.在需要转换JSON字符串的位置编写如下代码即可:
String json=JSON.toJSONString(要转换的对象);
案例:

		Book book = new Book("1001","西游记","唐三藏师徒四人西天取经的故事");
        String json = JSON.toJSONString(book);
        System.out.println(json);

输出结果:
在这里插入图片描述
将JSON字符串转换为对象
1.引入JAR包
2.在需要转换Java对象的位置, 编写如下代码:
类型 对象名=JSON.parseObject(JSON字符串, 类型.class);

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

案例:

		Book book = JSON.parseObject("{\"id\":\"1001\",\"info\":\"唐三藏师徒四人西天取经的故事\",\"name\":\"西游记\"}", Book.class);
        System.out.println(book);

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

案例:

		List<String> strings = JSON.parseArray("[\"一二三\",\"二三四\",\"三四五\"]", String.class);
        System.out.println(strings.get(1));

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值