58

ジャクソンがマッピングフィールドの大文字化をどのように扱っているかはわかりません。誰かが助けることができれば、私はそれを感謝します.

{"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"])

上は私の例外、下は私のクラスです...

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;
    }

...など

4

4 に答える 4

101

セッター メソッドの名前がsetMDReqID(…)JacksonmDReqIDであるため、Java の命名規則(変数は小文字で開始する必要があります) により、変数の名前が付けられていると想定されます。

本当に大文字が必要な場合は、次のようにセッターで@JsonPropertyアノテーションを使用します(または、シリアル化の場合はゲッターで):

@JsonProperty("MDReqID")
public void setMDReqID(String MDReqID) {
    this.MDReqID = MDReqID;
}
于 2013-03-08T21:02:05.390 に答える
0

すべてのフィールドに @JsonProperty を追加したくないため、同じ問題に直面しましたUpperCamelCaseStrategyが、それでもこのエラーが発生しました。戦略は私のフィールドpContentを ObjectMapper プロパティにしました。Pcontentgson

于 2020-09-12T03:44:37.913 に答える