Json与对象的相互转换
程序员文章站
2024-03-16 08:39:28
...
Json与对象的相互转换
利用ObjectMapper类 com.fasterxml.jackson.databind.ObjectMapper;
package com.jt.test;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.jt.pojo.ItemDesc;
import org.junit.jupiter.api.Test;
import java.util.Date;
public class TestObjrctMapper {
@Test
public void text01() throws JsonProcessingException {
ObjectMapper objectMapper = new ObjectMapper();//
ItemDesc itemDesc = new ItemDesc();//简单对象 有get方法 set方法(返回值是当前对象,链式加载)
itemDesc.setItemDesc("商品详情").setItemId(1545l).setCreated(new Date()).setUpdated(new Date());
//将对象转换为json
String json = objectMapper.writeValueAsString(itemDesc);//
System.out.println(json);//输出json
//json转换为对象
ItemDesc itemDesc1 = objectMapper.readValue(json,ItemDesc.class);//参数json对象,对象模型
System.out.println(itemDesc1.getItemDesc());//输出对象里的一个信息,验证
}
}
运行结果:
json和集合之间的转换
@Test
public void test02()throws JsonProcessingException {
ObjectMapper objectMapper1 = new ObjectMapper();
ItemDesc itemDesc = new ItemDesc();
itemDesc.setItemDesc("商品详情").setItemId(1545l).setCreated(new Date()).setUpdated(new Date());
ItemDesc itemDesc1 = new ItemDesc();
itemDesc.setItemDesc("商品详情1").setItemId(15451l).setCreated(new Date()).setUpdated(new Date());
List<ItemDesc> lists = new ArrayList<>();
lists.add(itemDesc);
lists.add(itemDesc1);
//将集合转换为json
String json1 = objectMapper1.writeValueAsString(lists);
System.out.println(json1);
//将json字符串转换为对象 这里的对象模型为可以为List.class接口 或者lists.getClass()
List lists1 = objectMapper1.readValue(json1, lists.getClass());
System.out.println(lists1);
}
运行结果 json字符串值之间是用 : 对象的值之间是用 = 号
创建ObjectMapper的工具类
package com.jt.util;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
public class ObjectMapperUtil {
/**
* 1.将用户传递的对象转换为json字符串
* 2.将用户传递的json字符串转换为对象
*/
private static final ObjectMapper OMAPPER= new ObjectMapper();
//将对象转换为字符串
public static String toJSON(Object object){
if(object == null){
throw new RuntimeException("传递的值为null.经检查");
}
try {
String json = OMAPPER.writeValueAsString(object);
return json;
} catch (JsonProcessingException e) {
//将检查异常转换为运行时异常
e.printStackTrace();
throw new RuntimeException(e);
}
}
//将用户传递的json字符串转换为对象 用户传递什么类型,我就返回什么类型
public static <T> T toObj(String json,Class<T> targer){
if(json==null||"".equals(json)){
throw new RuntimeException("传递的值为null.经检查");
}
try {
return OMAPPER.readValue(json,targer);
} catch (JsonProcessingException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
}
上一篇: 第一讲1108
下一篇: Json 与 对象 之间相互转换