Я тестирую REST API. Ниже мой JSON ответ.
[ {
"id" : 1,
"name" : "Chattagram"
}, {
"id" : 2,
"name" : "Rajshahi"
}, {
"id" : 3,
"name" : "Khulna"
}, {
"id" : 4,
"name" : "Barisal"
}, {
"id" : 5,
"name" : "Sylhet"
}, {
"id" : 6,
"name" : "Dhaka"
}, {
"id" : 7,
"name" : "Rangpur"
}, {
"id" : 8,
"name" : "Mymensingh"
} ]
Я преобразовал список в список HashMap. Я могу получить доступ к полю name
, но при попытке получить id
происходит следующее исключение. Я не понимаю, почему это исключение, потому что ключ правильный. Я дал образ консоли отладки, может кто-нибудь сказать мне, в чем проблема и как я могу получить доступ к id
?
java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
Исходный код:
@Test
public void getEmployees() throws IOException {
final String uri = "http://localhost:8080/public/geocode/divisions";
RestTemplate restTemplate = new RestTemplate();
String result = restTemplate.getForObject(uri, String.class);
restTemplate.getForObject(uri, String.class);
System.out.println(result);
ObjectMapper mapper = new ObjectMapper();
List<Map<String, String>> list = new ArrayList<>();
list = mapper.readValue(result, List.class);
System.out.println(list.get(0));//--------------out put : {id=1, name=Chattagram}
Map<String, String> m = list.get(0);
System.out.println("id : " + m.get("id")); //------------problem line
System.out.println("Name : " + m.get("name")); //------------working fine
System.out.println(list);
}
После установки точки останова в строке задачи отладочные переменные: