私は基本的に次のようにjsonに追加されたプロパティを読み取るコードを持っています。例えば 'name'や 'value' 。他のJSON文字列は「キャッチ」しなければならない他のプロパティを含めることができ@JsonAny(S | G} etterの1.7.4から1.9.3への変更?
@JsonAnySetter
public void addAdditionalProperty(String key, Object value) {
if (additionalProperties == null)
additionalProperties = new HashMap<String, Object>();
additionalProperties.put(key,value);
}
@SuppressWarnings("unused")
public void setAdditionalProperties(Map<String, Object> additionalProperties) {
this.additionalProperties = additionalProperties;
}
@JsonAnyGetter
public Map<String,Object> getAdditionalProperties() {
return this.additionalProperties;
}
@JsonIgnore
public String getName() {
return (String) getProperty("name");
}
@JsonIgnore
public String getValue() {
return (String) getProperty("value");
}
このコードは、ジャクソン1.7でうまく動作 - 。JSON {"operation":"write-attribute","address":[{"subsystem":"web"},{"connector":"http"}],"name":"socket-binding","value":"jndi"}
に従っ 方法が一般的なものとして、私はちょうど名前と値をハードコーディングに頼るだことができます。 4であるが、1.9.3で失敗し、additionalPropertiesが設定されていない場合 これが意図した変更であるのか、それとも回帰であるのか分からない。
それが意図された変更の場合 - 誰かが私のコードを再び動作させるための "修正"方法を知っていますか?
全コードis here、テストis here(最初のテスト、OperationSerDeserTest)
エラーは何ですか? – fge
説明したように、additionalProperties全体は設定されていませんが、1.7.4に含まれています。 –
ああ、ランタイムエラーがあることを理解しました – fge