質問
不明なフィールドを持つJSONをオブジェクトに脱皮化するには、@jsonanySetterがあります。
しかし、そのようなJSONを自分のオブジェクトに読み、既知のフィールドを変更してJSONに書き戻したらどうでしょうか。未知のプロパティは失われます。
そのようなケースをどのように処理できますか?オブジェクトをマップすることは可能ですか、それともデータをjsonnodeまたはマップに読み取る必要がありますか?
解決
カスタムJavaクラスへの登場には、その利点と短所があります。それはあなたに素敵な静的タイピングを与えますが、それはまあ、静的です。 Javadocの @JsonAnySetter
Jaxbに似ていることを示唆しています @XmlAnyElement
, 、しかし違って @XmlAnyElement
, 、データオブジェクトには命名情報が含まれていないため、一方向の通りです。
動的なJSONストリームを処理する必要がある場合は、弾丸を噛んで使用する必要があります Map
また JsonNode
.
他のヒント
ジャクソンのこのRFEがあります: http://jira.codehaus.org/browse/jackson-292 このような機能を追加します。あなたがそれについて考えるとき、完全に理にかなっています。
使用できるようになりました @JsonAnyGetter
動的特性のシリアル化を可能にする方法を提供するには:
@JsonAnyGetter
public Map<String, String> getDynamicProperties() {
return dynamicProperties; // a field like this exists
}
所属していません StackOverflow