- JSON对象的类型转换
- 前言
- 一、简单类型转换?
- 二、map复杂情况
- 三、List复杂情况
前言
针对简单类型,有实体类的json,直接转换成单个实体类,对于复杂类型,比如是map形式时,需要进行反序列化。
一、简单类型转换?
1.实体类json
public class User {
private String userName;
private Integer age;
private Date createTime;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Date getCreateTime() {
return addTime;
}
public void setCreateTime(Date createTime) {
this.addTime = addTime;
}
}
2.进行转化
public class travase {
public static void main(String[] args) throws JsonProcessingException {
ObjectMapper mapper = new ObjectMapper();
String json = "{"userName":"bob","age":18,"createTime":1991851786568}";
//这里需要这么写,
User user = mapper.readValue(json, User.class); //简单类型的时候,这样最方便
User user1 = mapper.readValue(json, new TypeReference() {}); //这样也可以,TypeReference主要针对复杂类型
System.out.println(user.getUserName());
System.out.println(user1.getUserName());
}
}
二、map复杂情况
public class travase1 {
public static void main(String[] args) throws JsonProcessingException {
ObjectMapper mapper = new ObjectMapper();
//注意这里键名和键值都是String类型的
Map map = new HashMap<>();
map.put("name", "bob");
map.put("sex", "男");
//先生成一个json方便理解
String json = mapper.writevalueAsString(map); System.out.println(json);//{"sex":"男","name":"bob"}
Map map1 = new HashMap<>();
map1 = mapper.readValue(json, Map.class);
//map1 = mapper.readValue(json, new TypeReference
三、List复杂情况
1.直接把Json, 转换成 List
public class travase3 {
public static void main(String[] args) throws JsonProcessingException {
ObjectMapper mapper = new ObjectMapper();
String json = "[{"userName":"bob","age":18,"createTime":1111}, {"userName":"java","age":19,"createTime":2222}]";
List list = mapper.readValue(json, List.class);
System.out.println(list.get(0).getUserName());
}
}
2.直接转换成 Bean数组
public class travase4 {
public static void main(String[] args) throws JsonProcessingException {
ObjectMapper mapper = new ObjectMapper();
String json = "[{"userName":"bob","age":18,"createTime":1111}, {"userName":"java","age":19,"createTime":2222}]";
Userbase[] userbaseAry = mapper.readValue(json, new TypeReference() {});
System.out.println(userbaseAry[0].getUserName());
}
}



