注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

让一切都逝去吧

排骨炖泥菜/猪肝炒苹果/鱼籽狗肉汤/狗头薏米汤

 
 
 

日志

 
 

jackson转换json对象,大写字母开头  

2013-10-22 23:31:08|  分类: Java |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
      jackson可以方便地实现对象和json字串的转换,但是如果json字串的键是大写字母开头的话,默认情况下会出错。如何处理在这里有说明:http://unmi.cc/jackson-java-object-json-string。使用ObjectMapper的setPropertyNamingStrategy方法。首先自己定义个描述大写字母开头的类
import com.fasterxml.jackson.databind.PropertyNamingStrategy.PropertyNamingStrategyBase;

public class UpperCasePropertyNamingStrategy extends PropertyNamingStrategyBase {

private static final long serialVersionUID = -5054105970777634248L;

@Override
public String translate(String propertyName) {
String name = propertyName.replaceAll("^\\w", propertyName.toUpperCase().substring(0,1));
return name;
}

}
这样使用
import com.fasterxml.jackson.databind.ObjectMapper;
...
ObjectMapper mapper = new ObjectMapper();
mapper.setPropertyNamingStrategy(new UpperCasePropertyNamingStrategy());
mapper.setDateFormat(...);
DataParams p = mapper.readValue(source, DataParams.class);

有时不是直接返回一个对象,而是一个对象数据或集合,这时可以这样写
import com.fasterxml.jackson.core.type.TypeReference;
...
DataParams jsonArray = mapper.readValue(source, DataParams[].class);
List<DataParams > jsonArray = mapper.readValue(source, new TypeReference<List<DataParams >>() {});
或者
List<DataParams > jsonArray = mapper.readValue(source, mapper.getTypeFactory().constructCollectionType(List.class, DataParams .class));

  评论这张
 
阅读(1988)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017