日期:2021年12月13日
出处:黑马程序员JavaWeb全套教程,Java Web从基础到项目实战(IDEA版)
正文
JSON
JavaScript Object Notation<==>JacaScript对象表示法
是一种数据格式
JSON现在多用于 存储和交换文本信息的语法 进行数据传输 类似于xml
JSON基本语法
注意:
一、索引越界
二、在遍历时想把键值对都输出只能用 [ ]的方式
for (var key in one) {
//alert(key+":"+one.key); ❌
alert(key+":"+one[key]); ✔
}
<script>
//基本格式
var one = {"name":"张三",'age':22,address:"jh"}
// alert(one);
var name1 = one.name;
var name2 = one["name"];
// alert(name1);
// alert(name2);
for (var key in one) {
// alert(key+":"+one.key);
alert(key+":"+one[key]);
}
// 嵌套格式:[{},{},{},....]
var two = [{"name": "zhangsan","age":23,"gender":true},
{"name": "lisi","age":25,"gender":false}];
// alert(two);
var name3 = two[1].name;
// alert(name3);
//嵌套格式:{**:[...]
var three = {"persons":[{"name": "zhangsan","age":23,"gender":true},
{"name": "lisi","age":25,"gender":false}
]
};
// alert(three);
var name4 = three.persons[1].name;
// alert(name4);
</script>
JSON数据和Java对象的相互转换
JSON解析器
- Java对象转换JSON
注意:
注解
复杂java对象的转换
package JSON;
import com.fasterxml.jackson.core.JsonProcessingException;
import org.junit.Test;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.File;
import java.io.FileWriter;
import java.util.*;
// TODO: 2021/12/13 Java对啊ing转为JSON字符串
public class JSON_Demo1 {
@Test
public void test1() throws Exception {
// 1.创建Person对象
Person p = new Person();
p.setName("张三");
p.setAge(25);
p.setGender("男");
// 2.创建Jackson的核心对象, ObjectMapper
ObjectMapper mapper = new ObjectMapper();
// 3.转换
String json = mapper.writeValueAsString(p);//将对象转为json字符串
System.out.println(json);
// mapper.writeValue(new File("D://json_test1.txt"),p);//将数据写到D://json_test1.txt
mapper.writeValue(new FileWriter("D://json_text2.txt"),p);//一流的形式将数据关联到D://json_test2.txt
}
@Test
public void test2() throws Exception {
Person p = new Person();
p.setName("张三");
p.setAge(25);
p.setGender("男");
p.setBirthday(new Date());
//2.转换
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(p);
System.out.println(json);
}
@Test
public void test3() throws Exception {
Person p1 = new Person();
p1.setName("张三");
p1.setAge(25);
p1.setGender("男");
p1.setBirthday(new Date());
Person p2 = new Person();
p2.setName("张三");
p2.setAge(25);
p2.setGender("男");
p2.setBirthday(new Date());
Person p3 = new Person();
p3.setName("张三");
p3.setAge(25);
p3.setGender("男");
p3.setBirthday(new Date());
//创建List集合
List<Person> ps = new ArrayList<>();
ps.add(p1);
ps.add(p2);
ps.add(p3);
//2.转换
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(ps);
System.out.println(json);
}
@Test
public void test4() throws Exception {
// 1.创建Person对象
Map<String,Object> map = new HashMap<>();
map.put("name","zhuangsan");
map.put("age",26);
map.put("gender","男");
//2.转换
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(map);
System.out.println(json);
}
}
- JSON转换Java对象(了解)
和Java转JSON大同小异并且不怎么常用这里就不再演示了
方法:readValue(JSON字符串数据,Class类型)
总结
这段知识的重点是JSON中Java对象转换JSON的书写格式,其中需要注意的也都在正文中标注了。