JSON与Java两种解析方式

2021/11/26 14:09:54

本文主要是介绍JSON与Java两种解析方式,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

JSON与Java两种解析方式

  • JSON介绍
    • 对象格式
    • 数组格式
      • 案例:
  • JSON解析 (重要)
    • Gson
    • FastJson

JSON介绍

JSON(JavaScript Object Notation)是一种独立于任何语言的轻量级简谱,用来存储数据。

相对于XML,JSON格式文本,程序员解析更加简单,机器解析效率更高。由于文本更小所以传输更快。

对象格式

一个对象, 由一个大括号表示.括号中描述对象的属性 .

通过键值对来描述对象的属性(可以理解为, 大括号中, 包含的是一个个的键值对.)

格式:

  • 键与值之间使用冒号连接, 多个键值对之间使用逗号分隔.
  • 键值对的键 应使用引号引住,也就是字符串 (通常Java解析时, 键不使用引号会报错. 而JS能正确解析.)
  • 键值对的值, 可以是JS中的任意类型的数据,还可以是对象或者下面提到的数组。
JSON:
        {
            "name":"金苹果",
            "info":"种苹果"
        }

数组格式

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

中间元素可以是字符串,数字等等,还可以是JSON对象

案例:

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

JSON解析 (重要)

做什么?

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

Gson

  1. 将对象转换为JSON字符串
转换JSON字符串的步骤:
    1.  引入JAR包
    2.  在需要转换JSON字符串的位置编写如下代码即可:
        String json = new Gson().toJSON(要转换的对象);
        
案例:
    Book b = BookDao.find();
    String json = new Gson().toJson(b);
    System.out.println(json);
  1. 将JSON字符串转换为Java对象
1.  引入JAR包
2.  在需要转换Java对象的位置, 编写如下代码:
        对象 = new Gson().fromJson(JSON字符串,对象类型.class);

案例:
String json = "{\"id\":1,\"name\":\"金苹果\",\"author\":\"张三\",\"info\":\"简述金苹果种植历程\",\"price\":198.0}";
Book book = new Gson().fromJson(json, Book.class);
System.out.println(book);

对于JSON数组格式,转成Java后会变成ArrayList数组格式。

FastJson

  1. 将对象转换为JSON字符串
转换JSON字符串的步骤:
1.  引入JAR包
2.  在需要转换JSON字符串的位置编写如下代码即可:
String json=JSON.toJSONString(要转换的对象);
        
案例:
Book b = BookDao.find();
String json=JSON.toJSONString(b);
System.out.println(json);
  1. 将JSON字符串转换为对象
1.  引入JAR包
2.  在需要转换Java对象的位置, 编写如下代码:
	类型 对象名=JSON.parseObject(JSON字符串, 类型.class);
或
    List<类型> list=JSON.parseArray(JSON字符串,类型.class);

案例:
    String json = "{\"id\":1,\"name\":\"金苹果\",\"author\":\"张三\",\"info\":\"简述金苹果种植历程\",\"price\":198.0}";
    Book book = JSON.parseObject(json, Book.class);
    System.out.println(book);
或
    String json = ["一二","二三","三四"]
    List<String> strings = JSON.parseArray("[\"一二\",\"二三\",\"三四\"]",String.class)


这篇关于JSON与Java两种解析方式的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程