1,什么是Json?
JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
2,数组Json,对象Json 嵌套Json
<script type="text/javascript">
let jsonArray = ["元素1", true, 0.1];//数组Json
for (let i = 0; i < jsonArray.length; i++) {
console.log(jsonArray[i]);
}
//键值对 键必须字符串,值不限
let jsonObject = {"k1": "v1", "k2": "v2"};//对象Json
console.log(jsonObject.k1);
console.log(jsonObject.k2);
//Json的相互嵌套,数组的元素是对象
let json = [
{"name": "张三", "age": 20},
{"name": "李四", "age": 21}
];
for (let i = 0; i < json.length; i++) {
console.log(json[i].name + ">>>" + json[i].age);
}
//Json的相互嵌套,对象的值是数组
let json = {
k1: ["北京", "天津", "承德"],
k2: ["海淀", "塘沽", "平泉"]
};
for (let i = 0; i < json.k1.length; i++) {
console.log(json.k1[i]);
}
//Json的相互嵌套,对象值为数组,数组元素为对象
let json = {
"k1": [
{"name": "张三", "age": 19},
{"name": "李四", "age": 21}
],
"k2": [
{"name": "赵六", "age": 22},
{"name": "王五", "age": 23}
],
}
for (let i = 0; i < json.k1.length; i++) {
console.log(json.k1[i].name + ">>" + json.k1[i].age);
}
</script>
3,阿里高性能Json框架之FastJson
fastjson 是阿里巴巴的开源JSON解析库,Fastjson 是一个 Java 库,可以将 Java 对象转换为 JSON 格式,当然它也可以将 JSON 字符串转换为 Java 对象。
<!-- 首先引入fastjson依赖 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.70</version>
</dependency>
@Data
public class User {
private String name;
private Integer age;
}
public class JsonTest {
static User users() {
User user = new User();
user.setName("张三");
user.setAge(20);
return user;
}
@Test
public void test01() {
//对象转Json
User users = JsonTest.users();
String jsonString = JSON.toJSONString(users);
System.out.println("jsonString = " + jsonString);
//jsonString = {"age":20,"name":"张三"}
}
@Test
public void test02() {
//List转Json
List<User> userList = new ArrayList();
userList.add(JsonTest.users());
String jsonListString = JSON.toJSONString(userList);
System.out.println("jsonListString = " + jsonListString);
//[{"age":20,"name":"张三"}]
}
@Test
public void test03() {
//Map转Json
Map<String, Object> map = new HashMap<>();
map.put("k1", JsonTest.users());
String jsonMapString = JSON.toJSONString(map);
System.out.println("jsonMapString = " + jsonMapString);
//jsonMapString = {"k1":{"age":20,"name":"张三"}}
}
@Test
public void test04() {
// JSON转对象 {"age":20,"name":"张三"}
String sjson = "{\"age\":20,\"name\":\"张三\"}";
User user = JSON.parseObject(sjson, User.class);
System.out.println("user = " + user);
//user = User(name=张三, age=20)
}
@Test
public void test05() {
// JSON转List [{"age":20,"name":"张三"}]
String sjson = "[{\"age\":20,\"name\":\"张三\"}]";
List<User> userList = JSON.parseArray(sjson, User.class);
System.out.println("userList = " + userList);
//userList = [User(name=张三, age=20)]
}
@Test
public void test06() {
// JSON转Map {"k1":{"age":20,"name":"张三"}}
String sjson = "{\"k1\":{\"age\":20,\"name\":\"张三\"}}";
Map<String, User> map = JSON.parseObject(sjson, new TypeReference<Map<String, User>>() {
});
Set<String> key = map.keySet();
Iterator<String> iterator = key.iterator();
while (iterator.hasNext()) {
String next = iterator.next();
System.out.println(map.get(next));
}
//User(name=张三, age=20)
}
}