Jackson序列化和反序列化

JSON(JavaScript Object Notation) 是一种轻量级的 数据交换格式 ,她是 JavaScript原生态的数据格式。  

她独立于任何编程语言(跨平台)、可读性高、易于生成和解析、体积轻量的文本格式,这些优雅的特性,让JSON成为非常理想的数据交换的语言。

不同语言之间的数据传递,最好的方式是String,Json就是String,但是它是有格式的;数据库中存储也可以使用Json格式存储

后台java从数据库查询到数据后,往往转换为List、Map、Set等,但是前台的javaScript无法识别,故通常:

List、Map、Set——>Json——>前台才可以解析

Json是有格式的,但是较为简单,仅仅是key-value对的形式,具体见Json官网:www.json.org

json序列化和反序列化的实现,主要依赖于包中提供的   ObjectMapper类

下面是一个简单的实例,原理比较简单:

public class JacksonUtil{

private JacksonUtil(){}


public static String beanToJson(Object obj) throws JsonProcessingException{

  ObjectMapper objectMapper=new ObjectMapper();

return objectMapper.writeValeAsString(obj);

}


public static<T> jsonToBean(String json, Class<T> clz) throws IOException{

ObjectMapper objectMapper=new ObjectMapper();

if(json==null){

return object.readValue("{}", clz);

}

return objectMapper.readVale(json,clz);

}

/* 

将json字符串转换为java对象,该对象可以只包含部分属性

*/

public static<T> jsonToBeanByMatchAttribute(String json, Class<T> clz)throws JsonParseException, JsonMappingException,IOException{

ObjectMapper objectMapper=new ObjectMapper();

if(json==null||json=""){

return null;

}

obectMapper.configure(DesrializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);

return objectMapper.readVale(json,clz);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值