Jackson使用指南

Jackson库包括Jackson Core、Jackson Annotations和Jackson Databind三个部分,它们之间存在依赖关系。使用Maven可以方便地引入这些库。Jackson主要通过ObjectMapper进行JSON与JavaBean之间的转换,对于复杂的Collection类型如List<YourBean>或HashMap<String,YourBean>,需要利用getTypeFactory构造泛型类型进行转换。" 139360586,17798234,企业档案管理系统自动化设计与实现,"['数据库', 'VB', '管理系统', '档案管理']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Jackson包含一个core JAR,和两个依赖core JAR的JAR: 
Jackson Core 
Jackson Annotations 
Jackson Databind 
其中Jackson Annotations依赖Jackson Core,Jackson Databind依赖Jackson Annotations。 
这三个JAR可以从Maven中央仓库下载,然后放在CLASSPATH中,也可以用Maven配置:
 

<dependency>  
      <groupId>com.fasterxml.jackson.core</groupId>  
      <artifactId>jackson-databind</artifactId>  
      <version>${jackson-version}</version>  
</dependency>  
<dependency>  
      <groupId>com.fasterxml.jackson.core</groupId>  
      <artifactId>jackson-core</artifactId>  
      <version>${jackson-version}</version>  
</dependency>  
<dependency>  
      <groupId>com.fasterxml.jackson.core</groupId>  
      <artifactId>jackson-annotations</artifactId>  
      <version>${jackson-version}</version>  
</dependency>  

 

//配置为true表示mapper接受只有一个元素的数组的反序列化

objectMapper.configure(Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true);

//配置为false表示mapper在遇到mapper对象中存在json对象中没有的数据变量时不报错,可以进行反序列化

 

objectMapper.configure(Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);

 

//新版的jackson设置mapper的方法,功能同上

 

objectMapper.getDeserializationConfig().without(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES);

 

//定义针对日期类型的反序列化时的数据格式

 

objectMapper.getDeserializationConfig().setDateFormat(new
SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));

Jackson处理一般的JavaBean和Json之间的转换只要使用ObjectMapper 对象的readValue和writeValueAsString两个方法就能实现。但是如果要转换复杂类型Collection如 List<YourBean>,那么就需要先反序列化复杂类型 为泛型的Collection Type。

如果是ArrayList<YourBean>那么使用ObjectMapper 的getTypeFactory().constructParametricType(collectionClass, elementClasses);

如果是HashMap<String,YourBean>那么 ObjectMapper 的objectMapper.getTypeFactory().constructParametricType(HashMap.class,String.class, YourBean.class);

也可以使用下面的方式

String jsonString="[{'id':'1'},{'id':'2'}]";
ObjectMapper mapper = new ObjectMapper();
List<Bean> beanList = mapper.readValue(jsonString, new TypeReference<List<Bean>>() {}); 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值