邢红瑞的bloghongrui.blog.chinaunix.net

专注DRM、VPN、集中配置管理、应用交付和日志审计

  • 博客访问: 1509076
  • 博文数量: 301
  • 博客积分: 1241
  • 博客等级: 中尉
  • 技术积分: 4172
  • 用 户 组: 普通用户
  • 注册时间: 2011-01-27 06:48
个人简介

给自己更高的要求,积极的学习,用正确的方法去做事,能辨别和听进别人的意见,然后付出最努力的辛苦。

文章分类

全部博文(301)

文章存档

2017年(36)

2016年(47)

2015年(51)

2014年(61)

2013年(55)

2012年(45)

2011年(6)

微信关注

IT168企业级官微



微信号:IT168qiye



系统架构师大会



微信号:SACC2013

订阅
热词专题
友情链接

分类: Java

一直使用jackson处理json,最近ui传来的数据{"funcCode":"Read_Coils","action":"pass","startaddr":"","endaddr":""},处理时需要把""转为null,
看了许久才明白其中的道理.
先写一个自定义反序列化类

点击(此处)折叠或打开

  1. import com.fasterxml.jackson.core.JsonParser;
  2. import com.fasterxml.jackson.core.JsonProcessingException;
  3. import com.fasterxml.jackson.databind.DeserializationContext;
  4. import com.fasterxml.jackson.databind.JsonDeserializer;
  5. import com.fasterxml.jackson.databind.JsonNode;

  6. import java.io.IOException;

  7. /**
  8.  * Created by li on 2/17/17.
  9.  */
  10. class CustomDeserializer extends JsonDeserializer<String> {

  11.     @Override
  12.     public String deserialize(JsonParser jsonParser, DeserializationContext context) throws IOException, JsonProcessingException {
  13.         JsonNode node = jsonParser.readValueAsTree();
  14.         if (node.asText().isEmpty()) {
  15.             return null;
  16.         }
  17.         return node.toString();
  18.     }

  19. }
然后在POJO类需要转换的字段加注解

点击(此处)折叠或打开

  1. private String action;
  2.     @JsonDeserialize(using = CustomDeserializer.class)
  3.     private String startaddr;
  4.     @JsonDeserialize(using = CustomDeserializer.class)
  5.     private String endaddr;
主要是引用
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;

转换的代码


点击(此处)折叠或打开

  1. ObjectMapper mapper = new ObjectMapper();
  2.         mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);

  3. ModbusTcp modbusTcp = mapper.readValue(json, ModbusTcp.class);
导入库
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;

注意是fastxml不是codehua,否则不起作用


阅读(8632) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~
评论热议
请登录后评论。

登录 注册