如何使用jackson将JSON数组去实现HashMap?

时间:2015-07-11 18:36:00

标签: java json jackson

我有这样的JSON对象:

 "stream_server":{  
         "value":"11",
         "list":[  
            {  
               "id":"11",
               "desc":"EU West"
            },
            {  
               "id":"4",
               "desc":"EU Sud + GB"
            },
            {  
               "id":"9",
               "desc":"DE 1"
            },
            {  
               "id":"12",
               "desc":"DE 2"
            }
         ]
      }

我为 Jackson 库生成了代码,其中“list”显示为对象的ArrayList

public class StreamServer {
    @JsonProperty("value")
    private String value;
    @JsonProperty("list")
    private java.util.HashMap<String, String> serverList = new HashMap<>();
}

我可以像上面那样将其反序列化为Java Object吗?

我正在寻找示例代码。

1 个答案:

答案 0 :(得分:4)

您可以将其反序列化为。

public static  class StreamServer {
    @JsonProperty("value")
    private String value;

    @JsonProperty("list")
    private List<Server> serverList;

}

public static class Server {
    @JsonProperty("id")
    private String id;

    @JsonProperty("desc")
    private String desc;
}

杰克逊的代码阅读将如下所示:

    ObjectMapper m  = new ObjectMapper();
    StreamServer s = m.readValue(json, StreamServer.class);