JSON(JavaScript Object Notation)是一种轻量级的数据交换语言,该语言以易于让人阅读的文字为基础,用来传输由属性值或者序列性的值组成的数据对象。尽管JSON是JavaScript的一个子集,但JSON是独立于语言的文本格式,并且采用了类似于C语言家族的一些习惯。
JSON 数据格式与语言无关,脱胎于 JavaScript。
键值对中一个key是一个字符串, 一个值(value)可以是一个字符串(string),一个数值(number),一个对象(object),一个布尔值(bool),一个有序列表(array),或者一个null值。
java中的maven项目中引用json依赖
我们也可以通过map集合来构建json
也可以使用javabean来构建json对象
从文件中读取json,引入依赖包并创建json文件
读取json内容
存在这样一种情况,当我们想获取json数据中key为name的value值,但是没有这个key 如果不加以处理,会引起程序的报错
我们可以采用以下的方式来保证程序的健壮性
Gson(又称Google Gson)
是Google公司发布的一个开放源代码的Java库,主要用途为序列化Java对象为JSON字符串,或反序列化JSON字符串成Java对象。
Gson的应用主要为toJson与fromJson两个转换函数,而在使用这种对象转换之前需先创建好对象的类别以及其成员才能成功的将JSON字符串成功转换成相对应的对象。
class Examples {
private int answer1 = 100;
private String answer2 = "Hello world!";
Examples(){
} // default constructor
}
序列化JAVA对象成JSON字符串
Examples example1 = new Examples();
Gson gson = new Gson();
String json = gson.toJson(example1);
==> json is {"answer1":100,"answer2":"Hello world!"}
反序列化JSON字符串成对应的JAVA对象
Examples example2= gson.fromJson(json,Examples.class);
==> example2即與example1相同
对象example1透过toJson序列化成JSON字符串传递,再宣告一个对象example2为接收了JSON后透过fromJson反序列化成example2,故example1与example2相同
在pom文件中添加相关的依赖
基本示例:
这样看gson与json没有多大区别
但是我们可以这样玩,给属性加上注解
这个很有意思对吧,可以改变key值
构建个性化的gson数据
gson简单的回调函数示例:
使用gson隐藏数据 如下 sex的值并未显示出来
将gson数据解析成对象。这是json所做不到的
使用gson实现日期的解析
注意:gson数据中的数组可以和java中的集合实现无缝对接