【问题标题】:Parsing json where field can have two different types with gson or jackson解析json,其中字段可以具有gson或jackson两种不同的类型
【发布时间】:2011-02-17 12:47:07
【问题描述】:

我有包含两种不同类型的字段的 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

【问题讨论】:

    标签: android json gson jackson deserialization


    【解决方案1】:

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

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

    【讨论】:

    猜你喜欢
    • 2017-01-30
    • 1970-01-01
    • 2017-06-28
    • 1970-01-01
    • 2018-01-20
    • 1970-01-01
    • 1970-01-01
    • 2020-12-04
    • 2021-08-05
    相关资源
    最近更新 更多