本文已参与「新人创作礼」活动,一起开启掘金创作之路。
JSON
json是一种轻量级(和xml相比)的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。JSON采用完全独立于语言的文本格式,而且很多语言都提供了对json的支持
数据交换指的是客户端和服务器业务数据的传递格式。
JSON在客户端(js)的使用
创建
json是由键值对组成,并且由花括号(大括号)包围。每个键由引号引起来,键和值之间使用冒号进行分隔,多组键值对之间进行逗号进行分隔。
var jsonobj = {
"key1":12,
"key2":"abc",
"key3" :true,
"key4" :[11, "arr" ,false],
"key5":{
"key5_ _1”: 551,
"key5_ 2" : "key5_ _2_ value"
},
"key6":[{
"key6_ 1 1" :6611,
"key6_ 1 _2":"key6_ 1 _2_ value'
},{
"key6_2 _1" :6621,
"key6_ 2_ .2":"key6_ .2_ .2. _value"
}]
};
如果用typeof查看json属性类型,则会返回object
访问
json本身是一个对象
json中的key我们可以理解为是对象中的一个属性,json中的key访问就和访问对象的属性一样,使用jsonname.key的形式访问
两种存在形式&两个常用方法
json的存在有两种形式:
- 以对象的形式存在(json对象)----json字符串通过方法JSON.parse()解包而来
- 以字符串的形式存在(json字符串)----json对象通过方法JSON.stringify()打包而来
我们要对json中的数据进行操作时,使用json对象格式
我们在客户端和服务器之间进行数据交换的时候,使用json字符串
JSON在服务器端(java)的使用
- 首先我们要进行导包操作
- 建立javabean,接下来我们就能将JavaBean的实例对象用Gson类实例的toJson方法直接转换为json字符串(可以通过gson.fromJson(JsonString, JavaBean.class)转换回JavaBean对象)
list、map集合也可以通过toJson转换为json字符串,形式为数组内包含json对象,但反向转换时可能会出现问题,需要新建类中写入对应泛型,将新建的类做参数:
from.fromJson(personMapJsonString,new PersonMapType().getType());
或用匿名内部类的形式:
from.fromJson(personMapJsonString,new TypeToken<HashMap<>());