使用Jackson解析首字母大寫的json字串

來源:互聯網
上載者:User

標籤:

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     @Override113     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 }

 

使用Jackson解析首字母大寫的json字串

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.