1.概念:JavaScript Object Notation
JavaScript对象表示法
Person p=new Person();
p.setName(“张三”);
p.setAge(23);
p.setGender(“男”);
var p={“name”:"张三,“age”:23,“gender”:“男”};
*JSON现在多用于存储和交换文本信息的语法
*进行数据的传输,类似于XML
*JSON比XML更小更快更易解析。
2.语法:
1.基本规则
数据在名称/值对中:json数据是由键值对构成的
*键用引号(单双都行)引起来,也可以不使用引号
*值的取值类型:
1.数字(整数或浮点数)
2.字符串(在双引号中)
3.逻辑值(true或false)
4.数组(在方括号中) {“person”:[{},{}]}
5.对象(在花括号中 ) {“address”:{“province”:“陕西”…}}
6.null
数据由逗号分隔:多个键值对用逗号分隔
花括号保存对象:使用{ }定义json格式
方括号保存数组:[ ]
2.获取数据
(1)json对象.键名
(2)jason对象[“键名”]
(3)数组对象[索引]
var person={"name":"张三","age":23,"gender":true};
//3.嵌套格式 []-->{}
var ps=[{"name":"张三","age":23,"gender":true},
{"name":"李四","age":24,"gender":true},
{"name":"王五","age":25,"gender":true}]
//获取person对象中所有的键和值
//for in循环
for (var key in person){
alert(key+":"+person[key]);
}
//获取ps中所有值
for (var i=0;i<ps.length;i++){
var p=ps[i];
for (var key in p){
alert(key+":"+p[key])
}
}
3.JSON数据和Java对象的相互转换
*JSON解析器
常见的解析器:Jsonlib,Gson,fastjson,jackson
1.JSON转为Java对象
2.Java对象转换JSON
*使用步骤
1.导入jackson的相关jar包
2.创建jackson核心对象objectMapper
3.调用objectMapper的相关方法进行转换
(1)*转换方法:
writeValue(参数1,obj);
参数1:
File:将obj转化为JSON字符串,并保存到指定文件中
Writer:将obj转化为JSON字符串,并将json数据填充到字符输出流中
OutputStream:将obj转化为JSON字符串,并将json数据填充到字节输出流中
writeValueAsString(obj):讲对象转为json字符串
(2)注解:
1.@JsonIgnore:排除属性
2.@JsonFormat:属性值的格式化
(3)复杂java对象转换
1.List:数组
2.Map:对象格式一致
3.JSON对象转换Java
*使用步骤
1.导入jackson的相关jar包
2.创建jackson核心对象objectMapper
3.调用objectMapper的相关方法进行转换
(1)readValue(json字符串数据,Class)