使用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();即可。

  1 public class CommissionItemVo implements Serializable{
  2
  3     /**
  4      *
  5      */
  6     private static final long serialVersionUID = 1L;
  7
  8     private int docId;
  9     @JsonProperty("CName")
 10     private String CName;
 11     @JsonProperty("CPhone")
 12     private String CPhone;
 13     @JsonProperty("BlockName")
 14     private String BlockName;
 15     @JsonProperty("SeeTime")
 16     private String SeeTime;
 17     @JsonProperty("Cost")
 18     private String Cost;
 19     @JsonProperty("EndSettleTime")
 20     private String EndSettleTime;
 21
 22     public int getDocId() {
 23         return docId;
 24     }
 25
 26
 27
 28     public void setDocId(int docId) {
 29         this.docId = docId;
 30     }
 31
 32
 33
 34     public String getCName() {
 35         return CName;
 36     }
 37
 38
 39
 40     public void setCName(String cName) {
 41         CName = cName;
 42     }
 43
 44
 45
 46     public String getCPhone() {
 47         return CPhone;
 48     }
 49
 50
 51
 52     public void setCPhone(String cPhone) {
 53         CPhone = cPhone;
 54     }
 55
 56
 57
 58     public String getBlockName() {
 59         return BlockName;
 60     }
 61
 62
 63
 64     public void setBlockName(String blockName) {
 65         BlockName = blockName;
 66     }
 67
 68
 69
 70     public String getSeeTime() {
 71         return SeeTime;
 72     }
 73
 74
 75
 76     public void setSeeTime(String seeTime) {
 77         SeeTime = seeTime;
 78     }
 79
 80
 81
 82     public String getCost() {
 83         return Cost;
 84     }
 85
 86
 87
 88     public void setCost(String cost) {
 89         Cost = cost;
 90     }
 91
 92
 93
 94     public String getEndSettleTime() {
 95         return EndSettleTime;
 96     }
 97
 98
 99
100     public void setEndSettleTime(String endSettleTime) {
101         EndSettleTime = endSettleTime;
102     }
103
104
105
106     public static long getSerialversionuid() {
107         return serialVersionUID;
108     }
109
110
111
112     @Override
113     public String toString() {
114         return "CommissionItemVo [docId=" + docId + ", CName=" + CName + ", CPhone=" + CPhone + ", BlockName=" + BlockName + ", SeeTime=" + SeeTime + ", Cost=" + Cost + ", EndSettleTime=" + EndSettleTime + "]";
115     }
116
117
118
119 }
时间: 2024-09-29 05:43:49

使用Jackson解析首字母大写的json字符串的相关文章

json-lib首字母大写的json串转javabean

依赖jar: commons-beanutils-1.9.3.jar? commons-collections-3.1.jar commons-lang-2.4.jar commons-logging-1.2.jar ezmorph-1.0.6.jar json-lib-2.4-jdk15.jar 测试程序: 1.Person.java: import java.util.List; /** * Created by Administrator on 2017/5/6. */public cla

如果json中的key需要首字母大写怎么解决?

一般我们命名都是驼峰式的,可是有时候和第三方接口打交道,也会遇到一些奇葩,比如首字母大写........额 这是个什么鬼,对方这么要求,那我们也得这么写呀. 于是乎,第一种方式:把类中的字段首字母大写,简单粗暴,然后生成setter getter.然后测试......给跪了 发现还是小写,额滴个亲娘呀,恁是咋回事儿呀. 原来 jackson在把类转成json的时候,看的是setter getter方法.也就是javabean. 搜噶. 于是乎,我们是否可以指定json的字段名呢,比如类中叫wha

css实现将英文语句第一个单词首字母大写

css实现将英文语句第一个单词首字母大写:英文语句,通常第一个单词的首字母是大写的,下面就通过代码实例介绍一下如何利用css实现此功能.代码如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.51texiao.cn/" /> <title&g

text-transform设置单词首字母大写

text-transform 一.语法   text-transform 主要用于设置文本的大小写. text-transform有5个值,分别如下: none. 默认值. capitalize. 文本中的每个单词的首字母大写. uppercase. 仅设置大写. lowercase. 仅设置小写. inherit. 继承父类text-transform的值. 二.用法 p.capitalize {text-transform: capitalize} <p class="capitali

java string,需要进行首字母大写改写

java string,需要进行首字母大写改写,网上大家的思路基本一致,就是将首字母截取,转化成大写然后再串上后面的,类似如下代码 //首字母大写     public static String captureName(String name) {         name = name.substring(0, 1).toUpperCase() + name.substring(1);        return  name;           } 将字符串name 转化为首字母大写.但是

JS replace()方法-字符串首字母大写

replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串. replace()方法有两个参数,第一个参数是正则表达式,正则表达式如果带全局标志/g,则是代表替换所有匹配的字符串,否则是只替换第一个匹配串.第二个参数可以是字符串,也可以是函数.$1.$2...表示与正则表达式匹配的文本. There are many ways we can make a difference. Global change starts with you. Sign up f

廖雪峰 练习 把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字

# -*- coding: utf-8 -*- #输入名字,变成首字母大写,其他字母小写的标准格式 def normalize(name): str1 = '' for i, ch in enumerate(name): if i == 0: str1 = str1 + ch.upper() #str.upper() 方法让字母转大写 else: str1 = str1 + ch.lower() #str.lower() 方法让字母转小写 return str1 # 输入: L1 = ['ada

[华为机试]输入数字的汉语拼音,每个拼音的首字母大写。输出该数字的阿拉伯数字。

//输入数字的汉语拼音,每个拼音的首字母大写.输出该数字的阿拉伯数字. //JiuBaiJiuShiJiu -> 999 #include<stdio.h> #include<string.h> int result = 0; void add(int n,char wei[]) { if(strcmp(wei,"Wan") == 0) result = result + n * 10000; else if(strcmp(wei,"Qian&q

UE自动将关键字首字母大写怎么办

对于某些关键字,UE会自动将首字母大写. 只要选中这些文字,右键选择"格式",转为小写字母即可.