使用Jackson解析首字母大写的json字符串
Jackson在解析返回的json字符串时始终报错,纠结很久之后才找到原因,原来是是由于json字符串中的字母都是首字母大写,导致jackson找不到相应的KEY。
在项目中经常使用从服务器获取的数据,有时从服务器获取的json字符串中的首字母是大写的,使用Jackson解析是就会报一下错误:
Exception in thread "main" org.codehaus.jackson.map.exc.UnrecognizedPropertyException: Unrecognized field "XXX" (Class xxxx), not marked as ignorable .
异常信息告诉说XXX属性字段在类型xxx中没有找到,也没有标记为忽略。
但是在你的bean中确实存在这个字段,而只不过是这个字段的首字母是大写而已。
解决这个问题只需要在属性字段上面加上@JsonProperty();即可。
 public class CommissionItemVo implements Serializable{
     /**
      *
      */
     private static final long serialVersionUID = 1L;
     private int docId;
     @JsonProperty("CName")
     private String CName;
     @JsonProperty("CPhone")
     private String CPhone;
     @JsonProperty("BlockName")
     private String BlockName;
     @JsonProperty("SeeTime")
     private String SeeTime;
     @JsonProperty("Cost")
     private String Cost;
     @JsonProperty("EndSettleTime")
     private String EndSettleTime;
     public int getDocId() {
         return docId;
     }
     public void setDocId(int docId) {
         this.docId = docId;
     }
     public String getCName() {
         return CName;
     }
     public void setCName(String cName) {
         CName = cName;
     }
     public String getCPhone() {
         return CPhone;
     }
     public void setCPhone(String cPhone) {
         CPhone = cPhone;
     }
     public String getBlockName() {
         return BlockName;
     }
     public void setBlockName(String blockName) {
         BlockName = blockName;
     }
     public String getSeeTime() {
         return SeeTime;
     }
     public void setSeeTime(String seeTime) {
         SeeTime = seeTime;
     }
     public String getCost() {
         return Cost;
     }
     public void setCost(String cost) {
         Cost = cost;
     }
     public String getEndSettleTime() {
         return EndSettleTime;
     }
     public void setEndSettleTime(String endSettleTime) {
         EndSettleTime = endSettleTime;
     }
     public static long getSerialversionuid() {
         return serialVersionUID;
     }
     @Override
     public String toString() {
         return "CommissionItemVo [docId=" + docId + ", CName=" + CName + ", CPhone=" + CPhone + ", BlockName=" + BlockName + ", SeeTime=" + SeeTime + ", Cost=" + Cost + ", EndSettleTime=" + EndSettleTime + "]";
     }
 }
使用Jackson解析首字母大写的json字符串的更多相关文章
- fastjson JSON.toJavaObject() 实体类首字母大写属性无法解析问题
		fastjson JSON.toJavaObject() 实体类首字母大写属性无法解析问题 
- jackson json序列化 首字母大写 第二个字母需小写
		有这样一个类: @Setter @Getter @JsonNaming(value = PropertyNamingStrategy.UpperCamelCaseStrategy.class) pub ... 
- javabean转成json字符首字母大写
		今天写接口的时候有个需求将接口返回的json字符串首字母大写:{"SN":"","Result":""}格式, 只需要在 ... 
- 如果json中的key需要首字母大写怎么解决?
		一般我们命名都是驼峰式的,可是有时候和第三方接口打交道,也会遇到一些奇葩,比如首字母大写........额 这是个什么鬼,对方这么要求,那我们也得这么写呀. 于是乎,第一种方式:把类中的字段首字母大写 ... 
- springmvc-@RequestBody无法映射首字母大写的属性
		@RequestBody可以将前台传入的json格式数据自动映射成对象,当如果属性的首字母大写,则会出现不能映射的情况,如: private String ICCID;会出现映射失败的情况 解决办法: ... 
- CSS中使用text-transform实现首字母大写
		CSS中首字母大写怎么实现?日常生活中需求方对英文的要求比较多,有的时候需要让英文单词或拼音首个字母大写;有的时候需要让全文中英文单词全大写或小写.这时候我们就需要text-transform属性了. ... 
- javascript面试题:如何把一句英文每个单词首字母大写?
		上周看到大家在JS群讨论如何把一句英文句子单词收割字母大写,大家都说用正则简单,对于正则还是有点模糊,于是乎自己敲了下 //面试题:如何把一句英文每个单词首字母大写? var str="wh ... 
- text-transform设置单词首字母大写
		text-transform 一.语法 text-transform 主要用于设置文本的大小写. text-transform有5个值,分别如下: none. 默认值. capitalize. 文 ... 
- string.capwords() 将每个单词首字母大写
		string.capwords() 将每个单词首字母大写 代码: import string s = ' The quick brown fox jumped over the lazy dog. ' ... 
随机推荐
- kubernetes endpoint一会消失一会出现的问题剖析
			问题现象 发现某个service的后端endpoint一会显示有后端,一会显示没有.显示没有后端,意味着后端的address被判定为notready. endpoint不正常的时候: [root@lo ... 
- easyUI使用datagrid-detailview.js实现二级列表嵌套
			本文为博主原创,转载请注明: 在easyUI中使用datagrid-detailview.js可快速实现二级折叠列表,示例如下: 注意事项: 原本在谷歌浏览器进行示例测试的,url请求对应的json文 ... 
- 由 UWP 版网易云音乐闪退引发的博文
			今天,不知怎么的.网易云音乐出现了一打开就闪退的情况.百度了好些时候未果,就直接 Windows + i 打开 Windows 设置 > 应用 在应用和功能列表中找到网易云音乐,在展开的 高级选 ... 
- Qt下拉对话框 ComboBox的用法
			介绍 ComboBox是Qt的下拉菜单的一个控件,通过下拉菜单选择不同的选项,样式如图: 基本用法 m_ComBox = ui.comboBox; //设置默认显示值的索引,从0开始 m_ComBox ... 
- 拦截器实现HandlerInterceptor没有提示实现里面的方法
			在自定义拦截器的时候需要实现HandlerInterceptor,但是没有报错,如图: 如果想实现里面的方法,快捷键是command+o 
- ES6标准之箭头函数
			语法 具有一个参数的简单函数 var single = a => a single('hello, world') // 'hello, world' 没有参数的需要用在箭头前加上小括号 var ... 
- angular2-4 之动效-animation
			提示: angular2 时animation代码在核心模块里面(@angular/core里面);到了angular4.0时animation从核心模块中提取出来作为一个单独的模块, 这样可以在 ... 
- ubantu下git的连接和使用
			目录 操作命令 创建仓库,并提交一个readme文件. 文件改动怎么办 版本回退 版本库(Repository) 撤销修改 删除文件 远程仓库 添加远程库 本地有一个仓库,想要在GitHub上同步这个 ... 
- MVC实战之排球计分软件(深入了解面向对象编程)
			在此篇博客之前,我已经写了一个实战系列的博客,虽然不太成熟但是相对比较实用,在这篇博客我将继续使用mvc编程此软件. 此篇博客会在一定的时间内完成,此次完成的软件的一个需求是提供给运动员的使用.我将在 ... 
- 若依项目分模块集成uflo2
			关于若依分模块创建项目可参考:https://www.cnblogs.com/conswin/p/9766186.html 了解uflo2,uflo2是一套由BSTEK自主研发的基于Java的工作流引 ... 
