質問

不明なフィールドを持つ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
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top