介绍
public static void main(String[] args) {
beanToJson();
ListAndMapToJson();
JsonToJava();
jsonArrToList();
}
//JavaBean转Json
private static void beanToJson() {
User user = new User("吴礼豪", 19, (short) 2, Arrays.asList("java", "php", "javascript"), new Date());
//创建jackson核心对象
ObjectMapper objectMapper = new ObjectMapper();
try {
//将对象转换成json
String userJson = objectMapper.writevalueAsString(user);
System.out.println(userJson);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
}
//List和Map转换成Json
public static void ListAndMapToJson() {
List languages = Arrays.asList("java", "php", "golang", "javascript");
Map salary = new HashMap<>();
salary.put("java", 20000);
salary.put("php", 16000);
salary.put("golang", 19500);
salary.put("javascript", 18000);
ObjectMapper mapper = new ObjectMapper();
try {
System.out.println(mapper.writevalueAsString(salary));
System.out.println(mapper.writevalueAsString(languages));
} catch (JsonProcessingException e) {
e.printStackTrace();
}
}
//,Json转Java对象:
public static void JsonToJava() {
//我们实现json转User对象:
String userJson = "{"name":"李一桐","age":30,"gender":2,"languages":["java","php","javascript"]," +
""createTime":"2021-05-07 00:19:11"}";
ObjectMapper objectMapper = new ObjectMapper();
//设置时区
objectMapper.setTimeZone(TimeZone.getTimeZone("GMT+8"));
User user = null;
try {
user = objectMapper.readValue(userJson, User.class);
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(user);
}
//如果我们的json是一个数组,我们要转化成List,怎么办?
public static void jsonArrToList() {
String usersJson = "[{"name":"李一桐","age":30,"gender":2,"languages":["java","php"," +
""javascript"],"createTime":"2021-05-07 00:22:34"},{"name":"鞠婧祎","age":26,"gender":2," +
""languages":["java","php","javascript"],"createTime":"2021-05-07 00:22:34"}," +
"{"name":"郑爽","age":27,"gender":2,"languages":["java","php","javascript"]," +
""createTime":"2021-05-07 00:22:34"}]n";
//创建核心对象
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.setTimeZone(TimeZone.getTimeZone("GMT+8"));
//获取LIst代泛型的JavaType
JavaType javaType = objectMapper.getTypeFactory().x(List.class, User.class);
try {
List userLists = objectMapper.readValue(usersJson, javaType);
//使用迭代器遍历
Iterator iterator = userLists.iterator();
while (iterator.hasNext()) {
System.out.println((User) iterator.next());
}
} catch (IOException e) {
e.printStackTrace();
}
}
public static void jsonToMap() {
String usersJson = "{"jujingyi":{"name":"鞠婧祎","age":26,"gender":2,"languages":["java","php"," +
""javascript"],"createTime":"2021-05-07 00:31:21"},"liyitong":{"name":"李一桐","age":30," +
""gender":2,"languages":["java","php","javascript"],"createTime":"2021-05-07 " +
"00:31:21"},"zhengshuang":{"name":"郑爽","age":27,"gender":2,"languages":["java"," +
""php","javascript"],"createTime":"2021-05-07 00:31:21"}}n";
ObjectMapper objectMapper = new ObjectMapper();
//设置时区
objectMapper.setTimeZone(TimeZone.getTimeZone("gmt+8"));
//首先,获取对应的Map泛型类型为User的
MapType javaType = objectMapper.getTypeFactory().constructMapType(Map.class, String.class, User.class);
Map userMap = null;
try {
userMap = objectMapper.readValue(usersJson, javaType);
} catch (IOException e) {
e.printStackTrace();
}
for (String key : userMap.keySet()) {
User user = userMap.get(key);
System.out.println("key--->" + user);
}
}
}