解析json,其中field可以有两种不同类型的gson或jackson

时间:2011-02-17 12:47:08

标签: android json gson jackson deserialization

我的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

1 个答案:

答案 0 :(得分:0)

理想情况下,我会更改产生奇怪JSON的代码:不应该是第二个值只是JSON null吗?我猜它是由一些复杂的过程产生的,从XML开始(必须使用'isNul'来区分null String和空String)。

但如果不可能,我认为Jackson和Gson都需要自定义解串器;或者首先绑定到通用Map,然后显式处理值奇怪。在第二种情况下,您只需声明要绑定到Map的类型(可以使用引用通用类型信息;但这应该是可选的)。