定义
//基本定义格式
var person = {name: "张三", 'age': 23, "gender": "man"};
//嵌套格式
var persons = {
person: [{name: "张三", 'age': 23, "gender": "man"}, {name: "张三", 'age': 23, "gender": "man"}
, {name: "张三", 'age': 23, "gender": "man"}]
}
var pon = [{name: "张三", 'age': 23, "gender": "man"}, {name: "张三", 'age': 23, "gender": "man"}, {
name: "张三",
'age': 23,
"gender": "man"
}]
值的获取
let name=person.name;
let name=person["name"];
获取数组中的值
let name=persons.person[2].name;
alert(pon[2].name);
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! -->
<title>图书管理系统登录界面</title>
<!-- Bootstrap -->
<link href="css/bootstrap.min.css" rel="stylesheet">
<script src="js/jquery-3.3.1.min.js"></script>
</head>
<body>
<input type="button" value="发送异步请求" onclick="fun()">
<script>
//基本定义格式
var person = {name: "张三", 'age': 23, "gender": "man"};
//嵌套格式
var persons = {
person: [{name: "张三", 'age': 23, "gender": "man"}, {name: "李四", 'age': 23, "gender": "man"}
, {name: "张三", 'age': 23, "gender": "man"}]
}
let name=persons.person[2].name;
alert(name);
var pon = [{name: "张三", 'age': 23, "gender": "man"}, {name: "李四", 'age': 23, "gender": "man"}, {
name: "张三",
'age': 23,
"gender": "man"
}]
alert(pon[2].name);
</script>
<!-- jQuery (Bootstrap 的所有 JavaScript 插件都依赖 jQuery,所以必须放在前边) -->
<script src="https://cdn.jsdelivr.net/npm/jquery@1.12.4/dist/jquery.min.js"></script>
<!-- 加载 Bootstrap 的所有 JavaScript 插件。你也可以根据需要只加载单个插件。 -->
<script src="js/bootstrap.min.js"></script>
</body>
</html>
遍历
//获取person对象中的所有值
for(let key in person)
alert(key+":"+person[key]);
//获取数组中的所有值
for(let i=0;i<pon.length;i++)
{
let p=pon[i];
for(let key in p)
alert(key+":"+p[key])
}
json和Java的相互转换
Java对象转换成json
@Test
public void test() throws IOException {
Person p=new Person("张三",23,"男");
//创建jackson的核心对象,ObjectMapper
ObjectMapper mapper=new ObjectMapper();
//转换
String json = mapper.writeValueAsString(p);
System.out.println(json);//{"name":"张三","age":23,"gender":"男"}
//将数据写到文件中
mapper.writeValue(new File("d://a.txt"),p);
//将数据关联到writer中
mapper.writeValue(new FileWriter("d://b.txt"),p);
}
注解
//@JsonIgnore//忽略该属性,在转换成json字符串的时候,就不会转换该属性
@JsonFormat(pattern = "yyyy-mm-dd")//将属性值格式化
private Date birthday;
复杂Java对象转换
List
public void test() throws IOException {
Person p1=new Person("张三",23,"男",new Date());
Person p2=new Person("张三",23,"男",new Date());
Person p3=new Person("张三",23,"男",new Date());
List<Person> ps=new ArrayList<>();
ps.add(p1);
ps.add(p2);
ps.add(p3);
//创建jackson的核心对象,ObjectMapper
ObjectMapper mapper=new ObjectMapper();
//转换
String json = mapper.writeValueAsString(ps);
System.out.println(json);//[{"name":"张三","age":23,"gender":"男","birthday":"2020-10-13"},{"name":"张三","age":23,"gender":"男","birthday":"2020-10-13"},{"name":"张三","age":23,"gender":"男","birthday":"2020-10-13"}]
}
Map
@Test
public void test() throws IOException {
Map<String,Object> map=new HashMap<>();
map.put("name","张三");
map.put("age",23);
map.put("gender","man");
//创建jackson的核心对象,ObjectMapper
ObjectMapper mapper=new ObjectMapper();
//转换
String json = mapper.writeValueAsString(map);
System.out.println(json);//{"gender":"man","name":"张三","age":23}
}
json字符串转换为Java对象
@Test
public void test() throws IOException {
String json="{\"name\":\"张三\",\"age\":23,\"gender\":\"男\"}";
ObjectMapper mapper=new ObjectMapper();
Person person=mapper.readValue(json,Person.class);
System.out.println(person);
}