Json:
1. 概念: javascript objevt notation JavaScriot对象表示法
Person p = new Person();
p.setName("张三");
p.setAge(23);
p.setGender("男");
var p = ("name";"张三";"age",23;"gender","男");
json现在多用于存储和交换文本信息的语法。
进行数据的传输
Json 比 XML 更小、更快,更易解析
2. 语法:
1.基本规则:
数据在名称/值对中,JSON数据是由键值对构成的
键用引号引起来,也可以不使用
值的取值类型:
1. 数字(整数或浮点数)
2. 字符串(在引号中)
3. 逻辑值(true 或 false)
4. 数组(在方括号中) ("persons":[{},{}])
5. 对象(在花括号中) ("address":{"province"}:"陕西".....)
6. null
数据由逗号分隔:多个键值对由逗号分隔
花括号保存对象:使用{}定义json格式
方括号保存数组: []
2. 获取数据:
1. json对象、键名
2. Json对象["键名"]
3. 数组对象[索引]
4. 遍历
//1.定义基本格式
var person = {"name": "张三", age: 23, 'gender': true};
var ps = [{"name": "张三", "age": 23, "gender": true},
{"name": "李四", "age": 24, "gender": true},
{"name": "王五", "age": 25, "gender": false}];
//获取person对象中所有的键和值
//for in 循环
/* for(var key in person){
//这样的方式获取不行。因为相当于 person."name"
//alert(key + ":" + person.key);
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转为对象
1. 导入jackson的jar包
2. 创建jakson核心对象 ObjiectMapper
3. 调用ObjectMapper的相关方法进行转换
1. 转换方法:
writeValue(参数1,Object);
参数1:
File:将obj对象转换为JSON字符串,并保存到指定文件中
Write:将obj独象转换为JSON字符串,并将json数据填充到字符输出流中
OutputStream:将obj对象转换为json字符串,并将json数据填充到字节输出流中
writeValueAsString(obj):将对象转为json字符串
2. 注解:
1. @jsonIgnore:排除属性。
2. @JsonFormat:属性值的格式化
@JsonFormat(pattern = "YYYY-MM-dd")
3. 复杂java对象转换
1. List:数组
2. Map: 对象格式一致
|
|