Java中的JSON解析

Java与JSON

简介:
JSON: JavaScript Object Notation JS对象简谱 , 是一种轻量级的数据交换格式.
做什么?
将Java中的对象 快速的转换为 JSON格式的字符串.
将JSON格式的字符串, 转换为Java的对象.

(一)Gson

Gson(又称Google Gson)是Google公司发布的一个开放源代码的Java库,主要用途为将Java对象转换为JSON字符串,或将JSON字符串转换成Java对象。

Gson官网:Gson.
Gson源码地址:Google/Gson

1.1 将对象转换为JSON字符串

转换JSON字符串的步骤:

  1. 引入Gson的jar包
  2. 在需要转换JSON字符串的位置编写如下代码即可:
    String json = new Gson().toJSON(要转换的对象);

案例:

		//创建Gson对象
        Gson gson = new Gson();
        //创建要转换的对象
        Book b = new Book(100, "格列佛游记", "格列佛旅游日志");
        //Gson对象调用toJson()将Book对象转换为JSON字符串
        String book = gson.toJson(b);
        System.out.println(book);//结果: {"id":100,"name":"格列夫游记","info":"格列佛旅游日志"}

1.2 将JSON字符串转换为对象

转换成Java对象的步骤:

  1. 引入Gson的jar包
  2. 在需要转换Java对象的位置, 编写如下代码:
    对象 = new Gson().fromJson(JSON字符串,对象类型.class);

案例:

		//创建Gson对象
        Gson g = new Gson();
        //转换 : {"id":100,"name":"格列佛游记","info":"格列佛旅游日志"}
        Book book = g.fromJson("{\"id\":100,\"name\":\"格列夫游记\",\"info\":\"格列佛旅游日志\"}", Book.class);
        System.out.println(book.getId());//运行结果: 100

案例(转成map集合对象):

		//1. 创建Gson对象
        Gson g = new Gson();
        //2. 转换: {"id":100,"name":"格列夫游记","info":"格列佛旅游日志","page":["锄禾日当午","汗滴禾下土","嘿嘿嘿嘿嘿"]}
        HashMap hashMap = g.fromJson("{\"id\":100,\"name\":\"格列夫游记\",\"info\":\"格列佛旅游日志\",\"page\":[\"锄禾日当午\",\"汗滴禾下土\",\"嘿嘿嘿嘿嘿\"]}", HashMap.class);
        List page = (List) hashMap.get("page");
        System.out.println(page.get(1));//运行结果: 汗滴禾下土

PS:以上JSON字符串中若有某个键值对的值为数组的形式,则该值会被转换为List集合对象

(二)FastJson

简介:FastJson.

将对象转换为JSON字符串

转换JSON字符串的步骤:

  1. 引入FastJson的jar包
  2. 在需要转换JSON字符串的位置编写如下代码即可:
    String json=JSON.toJSONString(要转换的对象);
    案例:
		Book b = new Book(10086, "格列佛游记", "小人国, 巨人国, 人马島");
        //对象转换为JSON字符串
        String book = JSON.toJSONString(b);
        System.out.println(book);//运行结果: {"id":10086,"info":"小人国, 巨人国, 人马島","name":"格列佛游记"}

JSON字符串转换为对象

  1. 引入JAR包
  2. 在需要转换Java对象的位置, 编写如下代码:
    类型 对象名=JSON.parseObject(JSON字符串, 类型.class);

案例:

		//JSON字符串转换为对象 {"id":10086,"info":"小人国, 巨人国, 人马島","name":"格列佛游记"}
        Book b1 = (Book)JSON.parseObject("{\"id\":10086,\"info\":\"小人国, 巨人国, 人马島\",\"name\":\"格列佛游记\"}", Book.class);
        System.out.println(b1.getId());//运行结果为: 10086

JSON格式的数据转换为数组格式

  1. 引入JAR包
  2. 在需要转换Java对象的位置, 编写如下代码:
    List<类型> list=JSON.parseArray(JSON字符串,类型.class);

案例:

		//JSON格式的数据转换为数组格式 [{"name":"一二三"},{"age":"四五六"},{"number":"七八九"}]
        List<String> strings = JSON.parseArray("[{\"name\":\"一二三\"},{\"age\":\"四五六\"},{\"number\":\"七八九\"}]", String.class);
        System.out.println(strings.get(1));//运行结果为: {"age":"四五六"}

喜欢的小伙伴们三连走一波吧!!!🤞🤞🤞

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值