说明:由于Java语言只能解析java对象,但是前段资源和浏览器只能解析json,所有需要学习Java对象与
json之间的互转。
java对象与json之间的互转可以使用ObjectMapper对象中封装的工具api方法实现,具体实现过程如下
代码所示:
@SpringBootTest
public class TestObjectMapper {
private static final ObjectMapper mapper=new ObjectMapper();
/**
* 该单元测试方法完成java对象转json操作
* 1.实现化工具API对象(ObjectMapper)
* 2.利用工具API方法实现数据转换
* @throws JsonProcessingException
*/
@Test
public void testObjectJson() throws JsonProcessingException {
//创建Java对象
创建ObjectMapperUtil工具api
说明:为了简化调用着的代码结构,我可以将业务封装到对象api中,方便调用·
在jt-common中创建ObjectMapperUtil,代码如下:
ItemDesc itemDesc=new ItemDesc();
itemDesc.setItemId(100L).setItemDesc("你好2109").setCreated(new
Date()).setUpdated(itemDesc.getCreated());
//将java对象转化为json
String json = mapper.writeValueAsString(itemDesc);
System.out.println(json);
//将json转换成java独享
ItemDesc itemDesc2 = mapper.readValue(json, ItemDesc.class);
System.out.println(itemDesc2);
}
@Test
public void testListJson() throws JsonProcessingException {
ItemDesc itemDesc=new ItemDesc();
itemDesc.setItemId(100L).setItemDesc("你好2109").setCreated(new
Date()).setUpdated(itemDesc.getCreated());
ItemDesc itemDesc2=new ItemDesc();
itemDesc2.setItemId(200L).setItemDesc("你好2109").setCreated(new
Date()).setUpdated(itemDesc2.getCreated());
//创建一个List集合
List<ItemDesc> list=new ArrayList<ItemDesc>();
list.add(itemDesc);
list.add(itemDesc2);
//将List集合转换为json
String json = mapper.writeValueAsString(list);
System.out.println(json);
//将json转换成List集合
List itemList = mapper.readValue(json, list.getClass());
System.out.println(itemList);
}
}
创建ObjectMapperUtil工具api
说明:为了简化调用着的代码结构,我可以将业务封装到对象api中,方便调用·
在jt-common中创建ObjectMapperUtil,代码如下:
package com.jt.util;
import com.fasterxml.jackson.databind.ObjectMapper;
public class ObjectMapperUtil {
/**
* 该工具方法,实现对象与json数据的转化
*/
private static final ObjectMapper mapper=new ObjectMapper();
/**
* 将对象转化为json
*/
public static String toJSON(Object obj) {
try {
String json = mapper.writeValueAsString(obj);
return json;//如果没有异常就返回json
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException();
}
}
/**
* 将json转换成java对象
*/
public static <T> T toObject(String json,Class<T> targetClass){
try {
T t= mapper.readValue(json, targetClass);
return t;
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException();
}
}
}