3

2つの異なるタイプを含むフィールドを持つjsonがあります。

"fields":[{"value":"ZIELONE OKO"},{"value":{"@nil":"true"}}]

これらの逆シリアル化に問題があります。モデルを含む私のクラスには次のものが含まれます。

private String value;

そして、私は単に{"@nil":"true"}をnullに変換する必要があります。今、エラーが発生します:

The JsonDeserializer StringTypeAdapter failed to deserialized json object {"@nil":"true"} given the type class java.lang.String
4

1 に答える 1

0

理想的には、その奇妙な JSON を生成するコードを変更します。XMLから始まる複雑なプロセスによって生成されていると思います(null文字列と空の文字列を区別するには「isNul」を使用する必要があります)。

しかし、それが不可能な場合は、Jackson と Gson の両方でカスタム デシリアライザーが必要になると思います。または、最初に一般的な Map にバインドしてから、値の奇数を明示的に処理します。2 番目のケースでは、マップとしてバインドする型を宣言するだけです (参照を使用したジェネリック型情報で可能ですが、それはオプションである必要があります)。

于 2011-02-18T18:25:42.503 に答える