2015-07-11 2 views
1

У меня есть объект JSON, как это:Как обезвреживать массив JSON в HashMap с помощью джексона?

"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" 
      } 
     ] 
     } 

Я сгенерированный код для Джексона библиотеки, где «список» представлен как ArrayList объектов.

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

Может ли я десериализацию его в объект Java, как и выше?

Я ищу образец кода.

+0

сделал у гугла это? – Bikku

+0

Возможный дубликат [Deserializing в HashMap пользовательских объектов с помощью джексона] (http://stackoverflow.com/questions/18002132/deserializing-into-a-hashmap-of-custom-objects-with-jackson) – Bikku

+0

@GoodBadandUgly, Спасибо за ссылку. Может быть, это мне поможет. Но это не совсем мое дело. Например, значение «11» «id» является ключом, а значение «ЕС-Запад» «desc» является значением моего HashMap. В вашем примере «id» - это ключ, «11» - значение, а «desc» - ключ «ЕС-Запад» - это значение и так далее. Надеюсь, это звучит не слишком сложно. – Sartre

ответ

3

Вы можете десериализовать его.

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); 
+0

Я вижу, но List <> избыточен. – Sartre

+1

В вашей структуре JSON список представляет собой список, а не карту, и каждый член списка - это Map (или объект json - зависит от того, как вы на него смотрите). –

+0

Итак, я не могу использовать значение «id» в качестве ключа для HashMap и значение «desc» в качестве значения для HashMap? – Sartre

Смежные вопросы