2013-03-08 169 views
18

我不清楚傑克遜在繪圖領域如何處理大寫字母。如果有人能幫助我會很感激。Jackson JSON字段映射大小寫?

{"user":{"username":"[email protected]","password":"pwd","sendercompid":"COMPID","service":{"host":"address","port":6666,"service":"S1","serviceAsString":"s1"}},"MDReqID":"ghost30022","NoRelatedSym":1,"Symbol":["GOOG"],"MarketDepth":"0","NoMDEntryTypes":3,"MDEntryType":["0","1","2"],"SubscriptionRequestType":"1","AggregatedBook":"N"}: 

以上是我的JSON,下面是我的例外......

com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "MDReqID" (class com.myco.qa.fixrest.MarketDataRequest), not marked as ignorable (10 known properties: , "mdreqID", "marketDepth", "user", "subscriptionRequestType", "aggregatedBook", "mdentryType", "symbol", "mdupdateType", "noRelatedSym", "noMDEntryTypes"]) 

以上是我的例外,下面是我的課...

public class MarketDataRequest { 
    private User user; 
    private String MDReqID; 
    private char SubscriptionRequestType; 
    private int MarketDepth; 
    private int MDUpdateType; 
    private char AggregatedBook; 
    private int NoMDEntryTypes; 
    private ArrayList<Character> MDEntryType; 
    private int NoRelatedSym; 
    private ArrayList<String> Symbol; 

    public User getUser() { 
     return user; 
    } 

    public void setUser(User user) { 
     this.user = user; 
    } 

    public String getMDReqID() { 
     return MDReqID; 
    } 

    public void setMDReqID(String MDReqID) { 
     this.MDReqID = MDReqID; 
    } 

    public char getSubscriptionRequestType() { 
     return SubscriptionRequestType; 
    } 

    public void setSubscriptionRequestType(char subscriptionRequestType) { 
     SubscriptionRequestType = subscriptionRequestType; 
    } 

...等等

回答

50

由於您的setter方法被命名爲setMDReqID(…) Jackson認爲變量名爲mDReqID,因爲Java namin g約定(變量應以小寫字母開頭)。如果你真的想要一個大寫字母,可以使用setter上的@JsonProperty annotation(或者 - 用於序列化 - 在getter上),如下所示:@JsonProperty("MDReqID")

+4

Muchos gracias amigo。 – shaz 2013-03-10 14:12:30

3

在與接收的Json字符串中的屬性名稱相匹配的setter上添加@JsonProperty

@JsonProperty("MDReqID") 
public String setMDReqID(String MDReqID) { 
     this.MDReqID = MDReqID; 
} 

另外添加@JsonProperty註釋吸氣劑以及爲輸出出現在常規格式。

@JsonProperty("mDReqID") 
public void getMDReqID() { 
     return MDReqID; 
} 

您可以根據自己的喜好命名變量。

private String mdReqID;