JSON
# JSON
JSON 语法是 JavaScript 对象表示语法的子集
- 数据在名称/值对中
- 数据由逗号分隔
- 花括号保存对象
- 方括号保存数组
var 变量名 = {
"key" : value , // Number类型
"key2" : "value" , // 字符串类型
"key3" : [] , // 数组类型
"key4" : {}, // json 对象类型
"key5" : [{},{}] // json 数组
};
JSON 值
- 数字(整数或浮点数)
- 字符串(在双引号中)
- 布尔值(true 或 false)
- 数组(在方括号中)
- 对象(在花括号中)
- null
# JSON 访问
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<script type="text/javascript">
//json访问
var json1 = {name:"张三",age:12};
document.write("name: "+json1.name+"<br/>");
document.write("age: "+json1.age+"<br/><br/>");
//json数组访问
var json2 = {names:["张三","李四","王五"]};
document.write("name(0): "+json2.names[0]+"<br/>");
document.write("name(1): "+json2.names[1]+"<br/>");
document.write("name(2): "+json2.names[2]+"<br/><br/>");
//json嵌套访问
var json3 = {names:[{"name":"张三","age":18},{"name":"李四","age":19},{"name":"王五","age":"20"}]};
document.write(json3.names[0].name+"<br/>");
document.write(json3.names[2].name+" ");
document.write(json3.names[2].age+"<br/>");
</script>
<body>
</body>
</html>
# JSON与Java对象的转换
json与java对象转换的前提需要
jar依赖包 点击下载 (opens new window)
实体类:
MyUser 属性: name、age 方法: get、set、构造(全参、无参)、toString
# java-->json
MyUser user = new MyUser("张三" , 18);
JSONObject jsonObject = JSONObject.fromObject(user);
System.out.println("json: " + jsonObject);
/*
json: {"age":18,"name":"张三"}
*/
# json-->java
String str = "{'age':19,'name':'李四'}";
JSONObject json = JSONObject.fromObject(str);
MyUser user2 = (MyUser) JSONObject.toBean(json, MyUser.class);
System.out.println("user2 : " + user2);
/*
user2 : user{name='李四', age=19}
*/
# java集合-->json数组
List list = new ArrayList();
list.add(new MyUser("张三" , 18));
list.add(new MyUser("李四" , 19));
list.add(new MyUser("王五" , 20));
JSONArray jsonArray = JSONArray.fromObject(list);
System.out.println("jsonArray : " + jsonArray);
/*
jsonArray : [{"age":18,"name":"张三"},{"age":19,"name":"李四"},{"age":20,"name":"王五"}]
*/
# json数组-->java集合
方法1
String str2 = "[{'age':11,'name':'张三'},{'age':22,'name':'李四'},{'age':33,'name':'王五'}]";
JSONArray jsonArray2 = JSONArray.fromObject(str2);
Object[] objects = (Object[]) JSONArray.toArray(jsonArray2,MyUser.class);
System.out.println("遍历java集合=========1");
for (Object object : objects) {
System.out.println(object);
}
/*
遍历java集合=========1
user{name='张三', age=11}
user{name='李四', age=22}
user{name='王五', age=33}
*/
方法2
String str3 = "[{'age':111,'name':'张三'},{'age':222,'name':'李四'},{'age':333,'name':'王五'}]";
JSONArray jsonArray3 = JSONArray.fromObject(str3);
List<MyUser> list2 = (List<MyUser>) JSONArray.toCollection(jsonArray3,MyUser.class);
System.out.println("遍历java集合=========2");
for (MyUser tmp : list2) {
System.out.println(tmp);
}
/*
遍历java集合=========2
user{name='张三', age=111}
user{name='李四', age=222}
user{name='王五', age=333}
*/
上次更新: 2023/03/12, 00:43:49