JSON解析教程

一、简介

JSON,全称:JavaScript Object Notation,是一种常见的轻量级的数据交换格式,在一个程序员的开发生涯中是常接触的。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

Java是面向对象的语言,所以我们更多的在项目中是以对象的形式处理业务的,但是在传输的时候我们却要将对象转换为 JSON 格式便于传输,而且 JSON 格式一般能解析为大多数的对象格式,而不在乎编程语言。

Json与XML的比较:体积小,节省流量,只是不如XML直观,可读性稍微差一点

二、对象格式

例子:

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":"种苹果" 
}

一个对象, 由一个大括号表示。 括号中描述对象的属性。通过键值对来描述对象的属性 (可以理解为, 大括号中 包含的是一个个的键值对)
格式:

  • 键与值之间使用冒号连接, 多个键值对之间使用逗号分隔.
  • 键值对的键 应使用引号引住 (通常Java解析时, 键不使用引号会报错,而JS能正确解析)
  • 键值对的值, 可以是JS中的任意类型的数据

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

{ 
    "name":"伟杰老师", 
    "age":18, 
    "pengyou":["张三","李四","王二","麻子",{ 
        "name":"野马老师", 
        "info":"像匹野马一样狂奔在技术钻研的道路上" 
    }], 
    "hobby":{ 
        "name":"学习", 
        "length":"40" 
    } 
}

三、json解析

3.1 Gson

Gson 是谷歌开发支持的,这个Java类库可以把Java对象转换成JSON,也可以把JSON字符串转换成一个相等的Java对象。 下载地址

1、将对象转换为JSON字符串

  1. 引入JAR包

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

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

案例:

Book b = BookDao.find(); 
String json = new Gson().toJson(b); 
System.out.println(json);

2、将JSON字符串转换为对象

  1. 引入JAR包

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

    对象 = new Gson().fromJson(JSON字符串,对象类型.class);

案例:

String json = "{\"id\":\"1002\",\"info\":\"小学生必备。\",\"name\":\"唐诗三百首\"}"; 
Book book = new Gson().fromJson(json, Book.class); 
System.out.println(book);

3.2 FastJson

fastjson 是阿里巴巴的开源JSON解析库,它可以解析 JSON 格式的字符串,支持将 Java Bean 序列化为 JSON 字符串,也可以从 JSON 字符串反序列化到 JavaBean。下载地址

1、将对象转换为JSON字符串

  1. 引入JAR包

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

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

案例:

Book b = BookDao.find(); 
String json=JSON.toJSONString(b); 
System.out.println(json);

2、将JSON字符串转换为对象

  1. 引入JAR包

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

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

    ​ 或

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

案例:

String json = "{\"id\":\"1002\",\"info\":\"小学生必备。\",\"name\":\"唐诗三百首\"}"; 
Book book = JSON.parseObject(json, Book.class);
System.out.println(book);

idea实际应用

1、创建存储jar的单独目录,将所需要的jar包均复制在该目录下
在这里插入图片描述
2、新添加的jar包无法直接使用,需要进行一些配置
file----->Project Structure----->library------>modules
在这里插入图片描述

在这里插入图片描述添加好library后点击modules,点击添加配置好的jar包
在这里插入图片描述验证配置效果,当jar包可以展开时说明配置成功。
运行效果图:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值