jacksonJSON字段映射大写?

我不清楚jackson如何处理绘图领域的资本化。 如果有人可以提供帮助,我会很感激。

{"user":{"username":"user@host.com","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"]) 

以上是我的例外,下面是我的class级……

 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 MDEntryType; private int NoRelatedSym; private ArrayList 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; } 

……等等

由于您的setter方法名为setMDReqID(…) Jackson假定该变量由于Java命名约定而命名为mDReqID(变量应以小写字母开头)。 如果你真的想要大写字母,请在setter上使用@JsonProperty注释 (或者 – 对于序列化 – 在getter上),如下所示: @JsonProperty("MDReqID")

在setter上添加@JsonProperty ,它与您收到的Json字符串中的属性名称相匹配。

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

另外,将@JsonProperty注释添加到getter以及输出以常规格式显示。

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

您可以根据自己的喜好命名变量。

 private String mdReqID;