JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。
对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。
数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔。
值(value)可以是双引号括起来的字符串(string)、数值(number)、true、false、 null、对象(object)或者数组(array)。这些结构可以嵌套。
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.8.5</version>
</dependency>
package com.jt.manage.pojo;
public class User {
private Integer id;
private String name;
private Integer age;
private String sex;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
@Override
public String toString() {
return "User [id=" + id + ", name=" + name + ", age=" + age + ", sex=" + sex + "]";
}
}
List<User> uList = objectMapper.readValue(json, new TypeReference<List<User>>(){});
package objectmapper;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.junit.Test;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.jt.manage.pojo.User;
public class TestObjectMapper {
//将对象转化为JSON
@Test
public void ObjectToJson() throws JsonProcessingException{
User user=new User();
user.setId(1);
user.setName("隔壁老王");
user.setAge(40);
user.setSex("男");
ObjectMapper objectMapper=new ObjectMapper();
//转化时调用对象的get方法
String json = objectMapper.writeValueAsString(user);
System.out.println(json);
}
@Test
public void jsonToObject() throws JsonParseException, JsonMappingException, IOException{
String json="{\"id\":\"1\",\"name\":\"隔壁老王\",\"age\":\"40\",\"sex\":\"男\"}";
ObjectMapper objectMapper = new ObjectMapper();
User user = objectMapper.readValue(json, User.class);
System.out.println(user);
}
@Test
public void jsonOA() throws IOException{
List<User>userList=new ArrayList<User>();
User user1=new User();
user1.setId(1);
user1.setName("隔壁老王");
user1.setAge(40);
user1.setSex("男");
User user2=new User();
user2.setId(1);
user2.setName("隔壁老王");
user2.setAge(40);
user2.setSex("男");
userList.add(user1);
userList.add(user2);
ObjectMapper objectMapper = new ObjectMapper();
String json = objectMapper.writeValueAsString(userList);
System.out.println("获取JSON串"+json);
//将复杂格式的JSON转化为对象List
List<?> uList = objectMapper.readValue(json, userList.getClass());
System.out.println("获取对象"+uList);
User[] users = objectMapper.readValue(json, User[].class);
//将数组转化为List集合
List<User> uList2=Arrays.asList(users);
System.out.println("获取对象"+uList2);
}
}
获取JSON串[{"id":1,"name":"隔壁老王","age":40,"sex":"男"},{"id":1,"name":"隔壁老王","age":40,"sex":"男"}]
获取对象[{id=1, name=隔壁老王, age=40, sex=男}, {id=1, name=隔壁老王, age=40, sex=男}]
获取对象[User [id=1, name=隔壁老王, age=40, sex=男], User [id=1, name=隔壁老王, age=40, sex=男]]