同じフィールドにブールとオブジェクトの両方を扱う、それはこのようなデータを返します。どのようにJavaのジャクソンはデシリアライザ私はサードパーティJSON APIで働いている
私は、このJSON文字列をデシリアライズするためにJavaジャクソンを使用{details: {...}, ...}
POJOオブジェクトに、フィールド宣言は、次のとおり
@JsonProperty("details") public Details getDetails(){...}
とDetails
が別のクラスです。私はそのAPIは、このようなデータを返すことが見つけるまで
すべてが正常である:
{details: false, ...}
詳細が空の場合、それはfalse
を返します!!!ジャクソンは私にこの例外を与えた:
com.fasterxml.jackson.databind.JsonMappingException: Can not instantiate value of type [simple type, class Details] from Boolean value; no single-boolean/Boolean-arg constructor/factory method (through reference chain: ...["details"])
をので、JSON文字列のこの種をどのように扱いますか?空の場合は、このフィールドをnullに設定する必要があります。
はとき '詳細はnullを返して、あなたのPOJOにカスタムデシリアライザをお試しくださいs'はブール値であり、そうでなければオブジェクトを返す。 – nonconvergent