(1)声明时:boolean和数字类型的值不用加引号,但是字符串类型的值需要加引号
标准写法:var jsonObj={"name":"maria","age":18};
简化写法:var jsonObj={name:"maria",age:18};
(2)访问时:console.log(jsonObj.name);
(3)增加时:jsonObj.address="zhengzhou";
(4)常用写法:JSON对象和数组互相嵌套,例如
var jsonObj={"stuNum":3,
"students":[{"name":"maria","age":18,"address":"zhengzhou"},
{"name":"jack","age":19,"address":"kaifeng"},
{"name":"tom","age":17,"address":"anyang"}]};
(5)遍历时:
$.each(jsonObj.students,function(i,d){
console.log(d.name);// maria jack tom
})
(6)Java中无JSON,为了便于前后端数据交互,后端传过来的数据都是标准写法,在前端通过parse()进行类型转换
标准写法:var jsonObj={"name":"maria","age":18};//涉及前后端数据交互
简化写法:var jsonObj={name:"maria",age:18};//纯前端使用
var jsonStr='{"name":"maria","age":18,"address":"anyang"}';
var jsonObj=JSON.parse(jsonStr);
注解
//@JsonIgnore //排除属性 属性作废* 指定格式 */ 指定 对象中 的 Date属性 为指定格式 @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")JackSon的使用
Person person = new Person(); person.setName("jim"); person.setAge(20); person.setGender("男"); ObjectMapper mapper = new ObjectMapper(); try { //将 person转为字符串 String string = mapper.writeValueAsString(person); System.out.println(string); // File Writer OutputStream 将对象 存到文件中 字符流中 字节流中 mapper.writeValue(new File("d://a.txt"), person);
3. JSON数据和Java对象的相互转换
* JSON解析器:
* 常见的解析器:Jsonlib,Gson,fastjson,jackson
1. JSON转为Java对象
1. 导入jackson的相关jar包
2. 创建Jackson核心对象 ObjectMapper
3. 调用ObjectMapper的相关方法进行转换
1. readValue(json字符串数据,Class)
2. Java对象转换JSON
1. 使用步骤:
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:属性值得格式化
* @JsonFormat(pattern = "yyyy-MM-dd")3. 复杂java对象转换
1. List:数组
2. Map:对象格式一致