服務器返回的該部分以反序列化json以上:反序列化JSON上課
@JsonTypeInfo(use=Id.NAME, include=As.WRAPPER_OBJECT)
@JsonSubTypes({
@JsonSubTypes.Type(value=Not.class, name="not"),
@JsonSubTypes.Type(value=And.class, name="and"),
@JsonSubTypes.Type(value=Or.class, name="or"),
@JsonSubTypes.Type(value=Expression.class, name=""),
})
我標記了合適的構造函數爲@JsonCreator
。
這對Expression
類不起作用。
如果我修改JSON每表達對象有名爲 「表情」:
"expression" : {
"operand": "a",
"operator": "==",
"value": "true"
}
和
@JsonTypeInfo(use=Id.NAME, include=As.WRAPPER_OBJECT)
@JsonSubTypes({
@JsonSubTypes.Type(value=Not.class, name="not"),
@JsonSubTypes.Type(value=And.class, name="and"),
@JsonSubTypes.Type(value=Or.class, name="or"),
@JsonSubTypes.Type(value=Expression.class, name="expression"),
})
試圖解析 「不」,當它失敗條件稱「不能實例化抽象類需要更多關於類型的信息」。所以看起來它在更深入的解析中失去了註釋聲明。
- 我不知道是否有可能與傑克遜寫反序列化的原始JSON
- 爲什麼第二種方法不適用於
Not
反序列化
如果您發佈了實際的類層次結構 - 上述代碼看起來不像編譯代碼 –
將代碼修改爲java代碼將會有所幫助。完整的源代碼在這裏:https://github.com/emartynov/spil-games-assignment/tree/master/service-core/src/main/java/com/spilgames/core/condition –
正確的行數: __Not實現Condition__ to __Not implements Condition__ __public class And()extends__ to __public class And extends__ __public class Or()extends__ to __public class or extends__ – Visruth