Java中JSON文档解析

JDK11

1.JSON是什么?

  1. JSON的全称为JavaScript Object Notation ,也就是JavaScript对象标记法。
  2. JSON是一种轻量级的数据交换格式,用于两个程序之间的数据交换,类似于XML文档。

2.JSON对象格式

使用JSON表示一个对象的格式:

{
	"属性名1":"属性值1",
	"属性名2":"属性值2",
	......
	"属性名":"属性值n"
}

注意事项

  • 一个对象整体由一个大括号表示
  • 对象的属性,是由一个个键值对组成
  • 键值对的键与值之间应该使用冒号隔开,而不同键值对之间需要使用逗号隔开
  • 键与值最好都使用双引号,值可以是JavaScript中的任何一种数据类型

示例

{
    "name":"金苹果",
    "info":"讲述了种植苹果的辛酸历程"
}

3.JSON数组表示

JSON中的数组使用 [ ] 表示,并且数组可以跟对象互相嵌套

格式:

[元素1,元素2...]

示例:

数组包含对象

    ["张三","李四",{
        "name":"王五",
        "info":"一个在技术上使劲钻研的人"
    }]

对象包含数组:

{
    "name":"李小超",
    "friend":["张三","李四",
              {
        		"name":"王五",
        		"info":"一个在技术上使劲钻研的人"
    		}
             ]
    "info":"一个非常帅气的人"
}

对象与对象的嵌套:

{
    "name":"李小超",
    "project":{
        "school":"HPU",
        "name":"computer"
    }
}

4.JSON的解析

1. 使用Gson解析JSON文件
  1. 将Java对象转换为JSON字符串

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

    代码示例:

    Book b = new Book("金苹果","讲述了种植苹果的辛酸路程");
    String str = new Gson().toJson(b);
    
  2. 将JSON字符串转换为Java对象

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

    代码示例:

    1. 将JSON字符串转换为Java对象
     Book b2 = new Gson().fromJson(str, Book.class);
     System.out.println(b2.getName());
    
    1. 将JSON字符串转换为Java集合
    String js = "{\"name\":\"金苹果\",\"info\":\"讲述了种植苹果的辛酸历程\",\"page\":[\"锄禾日当午\",\"汗滴禾下土\"]}";
    HashMap data = new Gson().fromJson(js,HashMap.class);
    System.out.println(data.get("page").getClass());
    
    /*
    	输出结果:class java.util.ArrayList
    */
    

    我们在写JSON字符串的时候,需要注意使用转义字符转换双引号,另外,如果键值对的值是JSON数组,那么对应数组在转换之后的类型是ArrayList

2. 使用fastJson解析JSON文件

使用fastJSON解析与Gson十分相似,不过前者使用的是静态方法。

  1. Java对象转换为JSON字符串

    String json=JSON.toJSONString(要转换的对象);
    
  2. JSON字符串转换为Java对象

    类型 对象名=JSON.parseObject(JSON字符串, 类型.class);
    或者
    List<类型> list=JSON.parseArray(JSON字符串,类型.class);
    

    示例:
    转换为Java对象

     Book b2 = JSON.parseObject(json1,Book.class);
    

    转换为List集合

    List list = JSON.parseArray(json1,String.class);
    

    在这里进行说明一下,我们观察JSON.parseArray()的源码可以看到,这个方法的返回值就是一个List类型的数据,我们向方法中传递的第二个参数是List元素所属的类型。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值