2016-02-09 2 views
1

Я пытаюсь отобразить эту JSONArray с помощью Spring RestTemplate:Mapping JSONArray в RestTemplate Spring

[{ 
    "Command": "/usr/sbin/sshd -D", 
    "Created": 1454501297, 
    "Id": "e00ca61f134090da461a3f39d47fc0cbeda77fbbc0610439d3c16a932686b612", 
    "Image": "ubuntu:latest", 
    "Labels": { 

    }, 
    "Names": [ 
     "/nova-c1896fbd-1309-4da2-8d77-b4fe4c02fa8e" 
    ], 
    "Ports": [ 

    ], 
    "Status": "Up 2 hours" 
}, { 
    "Command": "/usr/sbin/sshd -D", 
    "Created": 1450106126, 
    "Id": "7ffc9dbdd200e2c23adec442abd656ed57306955332697cb7da979f36ebf3b22", 
    "Image": "ubuntu:latest", 
    "Labels": { 

    }, 
    "Names": [ 
     "/nova-93b9ae40-8135-48b7-ac17-12094603b28c" 
    ], 
    "Ports": [ 

    ], 
    "Status": "Up 2 hours" 
}] 

Вот ContainersInfo класс:

@JsonIgnoreProperties(ignoreUnknown = true) 
public class ContainersInfo { 


    private String Id; 


    private List<String> Names; 

    public String getId() { 
     return Id; 
    } 

    public void setId(String id) { 
     Id = id; 
    } 

    public List<String> getNames() { 
     return Names; 
    } 

    public void setNames(List<String> names) { 
     Names = names; 
    } 
} 

Однако я получаю null, когда я хочу, чтобы получить данные:

ContainersInfo[] containers = syncRestTemplate.getForObject("http://192.168.1.2:4243/containers/json?all=1", ContainersInfo[].class); 

for (int i = 0; i < containers.length; i++) 
      System.out.println("id:" + containers[i].getId()); 

Итоговый результат:

ID: нулевой

ID: нулевой

Любая идея, что я должен делать?

+0

Вы уверены, что часть ваших меток является объектом? Или это должен быть массив? –

+0

Я даже не пытаюсь отобразить «Ярлыки» Я просто пытаюсь получить «ИД» и «Имена» в классе «ContainersInfo» – secret

+0

Попробуйте удалить ярлыки. –

ответ

1

Ваши имена полей JSON находятся в корпусе паскаля, в отличие от корпуса верблюда (что обычно бывает). Установите стратегию именования Джексона на PascalCaseStrategy, т. Е. Добавив @JsonNaming(PascalCaseStrategy.class) аннотация к классу ContainersInfo.

+0

Да, я знаю расширение chrome, чтобы показать данные JSON в отформатированном виде, это изменение. Это не проблема. – secret

+0

Спасибо за информацию. См. Мой отредактированный ответ. –

+0

Большое спасибо – secret