@JsonPropertyOrder |
用于类, 指定属性在序列化时 json 中的顺序 , 示例: @JsonPropertyOrder({ "birth_Date", "name" }) 1.2.2 将JSON转换为实体类
/**
* 将JSON转换为实体类
* @author luoxiang
*/
@Test
public void jsonToEntity() throws Exception {
//JSON内容
String json = "{\"userName\":\"uncle_xiang的博客\",\"blogUrl\":\"https://blog.csdn.net/uncle_xiang\",\"createDate\":\"2022-01-13 10:07:55\",\"blog-remark\":\"您好,欢迎访问 uncle_xiang的博客\"}";
//将JSON转换为实体类
ObjectMapper mapper = new ObjectMapper();
UserInfo userInfo = mapper.readValue(json, UserInfo.class);
//打印结果
System.out.println("用户名称:" userInfo.getUserName());
System.out.println("登录密码:" userInfo.getPassword());
System.out.println("博客地址:" userInfo.getBlogUrl());
System.out.println("博客信息:" userInfo.getBlogRemark());
System.out.println("创建时间:" userInfo.getCreateDate());
}
执行结果:
2、创建工具类
在项目中创建Jackson工具类(JacksonUtil.java)
package com.demo.utils.json;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* Jackson工具类
* @author luoxiang
* @date 2022年01月13日 10:13 上午
*/
public class JacksonUtil {
private static ObjectMapper mapper = new ObjectMapper();
/**
* 将对象转换成JSON数据
* @author luoxiang
* @date 2022/1/13 10:15 上午
* @param data data对象
* @return java.lang.String JSON数据
*/
public static String getBeanToJson(Object data){
try {
return mapper.writeValueAsString(data);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
return null;
}
/**
* 将JSON数据转换成对象
* @author luoxiang
* @date 2022/1/13 10:17 上午
* @param jsonData JSON数据
* @param beanType 对象类型
* @return T 对象
*/
public static <T> T getJsonToBean(String jsonData,Class<T> beanType){
try {
return mapper.readValue(jsonData, beanType);
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
/**
* 将JSON数据转换成列表
* @author luoxiang
* @date 2022/1/13 10:21 上午
* @param jsonData JSON对象
* @param beanType 对象类型
* @return java.util.List<T> 列表
*/
public static <T> List<T> getJsonToList(String jsonData, Class<T> beanType){
try {
JavaType javaType = mapper.getTypeFactory().constructParametricType(List.class, beanType);
return mapper.readValue(jsonData, javaType);
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
/**
* 将JSON数据转换成Set集合
* @param jsonData JSON数据
* @param elementType 元素类型
* @param <E>
* @return Set集合
*/
public static <E> Set<E> getJsonToSet(String jsonData, Class<E> elementType){
try {
JavaType javaType = mapper.getTypeFactory().constructCollectionType(Set.class, elementType);
return mapper.readValue(jsonData,javaType);
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
/**
* 将JSON数据转换成Map集合
* @author luoxiang
* @date 2022/1/13 10:28 上午
* @param jsonData JSON数据
* @param keyType 键类型
* @param valueType 值类型
* @return java.util.Map<K,V> Map集合
*/
public static <K,V> Map<K,V> getJsonToMap(String jsonData, Class<K> keyType, Class<V> valueType){
try {
JavaType javaType = mapper.getTypeFactory().constructMapType(Map.class, keyType, valueType);
return mapper.readValue(jsonData,javaType);
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
} 1.1将JSON数据转换成set集合。
/**
* 将JSON数据转换成Set集合
* @author luoxiang
*/
@Test
public void setTest(){
Set<String> userSet = new HashSet<>();
userSet.add("uncle_xiang的博客");
userSet.add("您好,欢迎访问 uncle_xiang的博客");
userSet.add("https://blog.csdn.net/uncle_xiang");
//将Set转化为JSON数据
String json = JacksonUtil.getBeanToJson(userSet);
System.out.println(json "\n");
//将JSON数据转换成Set集合
Set<String> jsonToSet = JacksonUtil.getJsonToSet(json,String.class);
for(String item : jsonToSet) {
System.out.println(item);
}
}
执行结果:
2.2将JSON数据转换成Map集合。
/**
* 将JSON数据转换成Map集合
* @author luoxiang
*/
@Test
public void mapTest() {
Map<String, String> userMap = new HashMap<>();
userMap.put("userName", "uncle_xiang的博客");
userMap.put("blogUrl", "https://blog.csdn.net/uncle_xiang");
userMap.put("blogRemark", "您好,欢迎访问 uncle_xiang的博客");
//将map转化为JSON数据
String json = JacksonUtil.getBeanToJson(userMap);
//将JSON数据转换成Map集合
Map<String, String> jsonToMap = JacksonUtil.getJsonToMap(json, String.class, String.class);
System.out.println("用户名称:" jsonToMap.get("userName"));
System.out.println("博客地址:" jsonToMap.get("blogUrl"));
System.out.println("博客备注:" jsonToMap.get("blogRemark"));
}
执行结果:
,
免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com
|