【问题标题】:Jackson deserialize json Map - Map<String,Map<String,String>> as one Object杰克逊反序列化 json Map - Map<String,Map<String,String>> 作为一个对象
【发布时间】:2013-02-02 06:13:27
【问题描述】:

我有以下 JSON:

{
    "Live": {
        "Saerro (AU)": {
            "status": "low",
            "age": "00:01:17"
        },
        "Connery (US West)": {
            "status": "medium",
            "age": "00:02:26"
        }
    }
}

所以 Map Live 的值是 Map&lt;String,Map&lt;String,String&gt;&gt;。 我需要将 Live 反序列化为对象列表,例如

public class Status implements Serializable {
    @JsonProperty
    public String name;
    @JsonProperty
    public String status;
    @JsonProperty
    public String age;
}

是否有注释或我可以使用的东西,以便映射键和值被反序列化为一个对象?

【问题讨论】:

  • 不,你所拥有的是一个带有Live 字段的对象,即Map&lt;String,SomeObject&gt; 其中SomeObject 有两个字段; statusage

标签: java android jackson


【解决方案1】:

您需要编写一个自定义的反序列化器来处理这个问题。 This 给出了一个不错的概述,stackoverflow 上还有许多其他问题涵盖了这一点,例如 here

或者,您可以让 Jackson 反序列化为 Map&lt;String, Map&lt;String, String&gt;&gt;,然后将其后处理为您希望的任何形式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-20
    • 1970-01-01
    • 1970-01-01
    • 2021-01-26
    • 2022-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多