Json存在的意义:
Json主要用来做数据的传输,例如发送java中的一个对象,由于对象是存储在内存里的,不能直接将内存里的对象发送出去,这时需要使用序列化(持久化)手段,将对象转换为一系列字符串(比如说Json),在字符串送达目的地时再使用反序列化(Json解析)形成一个对象,就可以实现对象发送,Json格式可以作为一种传递格式。
Json数据类型:
Json的格式主要包括字符串和数字。
Json的数据结构:
Json的数据结构一共有两种:
对象
数组
对象:
Json中的对象使用键值对的形式进行存储,最外部使用大括号
Json对象内部键值对形如:“key”:“value”。
键和值之间使用 :隔开,"key"部分必须为字符串,“value”部分可以是字符串、其他Json对象、数字、或者是数组。只要符合Json的数据结构都可以。
键值对之间使用 , 隔开。
{
"name":"apple",
"price":10.5
}
对象可以为空:
{}
数组:
Json中的数组使用[]包围,在[]内部可以是任意符合Json格式的数据,也可以混合数据类型,数组元素之间使用 , 隔开。
例:
[1,2,3,4,5,{
"A": "a"
}]
数组也可以为空:
[]
fastjson是什么?
fastjson是一个工具jar包,可以将对象序列化成Json格式的数据,也可以将Json格式的数据转换为对象,由Alibaba开发,速度快,国内广受好评。
通过JSON.toJSON()方法可以直接将对象化为JSON格式
X x = new X();
Objece o = JSON.toJSON(x);
上述的o对象虽然是Object类型,但是可以直接System.out.println输出,输出内容即为对象对应的Json格式数据字符串。
通过JSON.parseObject()或者集合对象使用JSON.parseArray()即可将Json格式数据转换为对应的对象
//X x = new X();
//Objece o = JSON.toJSON(x);
X x = JSON.parseObject(o,X.class);
上述o 为Json格式数据。
JSON.parseArray()操作类似。
fastjson仓库下载