json串不规范和java实体对象互转(json和实体对象字段命名不同转换)

json串不规范和java实体对象互转

有的第三方提供的接口文档是这样(全大写、下划线、不驼峰)

PERSON_NAME 必填  

mobile 必填

Sex 必填 

HOBBY 必填

不知道是不是报复性写的接口文档,看到都无语了。完全不遵守命名规范。

他文档这么写,我们建对象可不能这么写。

因此可以用到@JsonProperty 注解

/**PERSON_NAME 必填

mobile 必填

Sex 必填

HOBBY 必填 **/

@JsonProperty("PERSON_NAME")
private String personName;
// 规范的可以不用加
private String mobile;

@JsonProperty("Sex")
private String sex;

@JsonProperty("HOBBY")
private String hobby;

传参

传给第三方的时候,可以进行处理

   User user = new User("张三","13222222222","0","xxx") 

   ObjectMapper mapper = new ObjectMapper();
   String json = mapper.writeValueAsString(user)
   System.out.println(json); //这里打印出来就是文档所要的格式了
   return json ;

接收参数 

第三方传参:

{
 "PERSON_NAME":"张三",
 "mobile":"13222222222",
 "Sex":"1",
 "HOBBY":"xxx",
}

接收转换实体:

User user = new ObjectMapper().readValue(jsonResult,User.class);

当json的字段多于对象的字段,readValue的时候就会报错。

因此最好在readValue之前设置下 

ObjectMapper objMapper = new ObjectMapper ();
objMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES,false);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值