2016-06-18 2 views
-2

Я следующее значение строки, которые нужно преобразовать в карту, я использовал следующий кодПреобразование строки для отображения в Java

String parameters='[{"key":"login","value":"admin"},{"key":"Createddate","value":"cairo"}]'; 

ObjectMapper mapper = new ObjectMapper(); 
Map<String, String> map ; 

map = mapper.readValue(parameters, new TypeReference<Map<String, String>>(){}); 
System.out.println(map); 

Я получаю следующую ошибку

com.fasterxml.jackson.databind.JsonMappingException: Can not 
deserialize instance of java.util.LinkedHashMap out of START_ARRAY token 
at [Source: [{"key":"login","value":"admin"}, 
{"key":"Createddate","value":"cairo"}]; line: 1, column: 1] 
+0

, что проблема с вашим кодом? – Kaushal28

+0

Я обновил вопрос –

+0

JSON - это массив объектов (каждый из которых описывает одну пару ключ/значение). Вам нужно попросить Джексона сначала дать вам список, а затем перебрать его, чтобы построить карту результатов. – Thilo

ответ

-1
String param="[{\"key\":\"login\",\"value\":\"admin\"},{\"key\":\"Createddate\",\"value\":\"cairo\"}]"; 

ObjectMapper mapper = new ObjectMapper(); 
List maps = mapper.readValue(param, List.class); 

for (int i=0 ; i<maps.size() ; i++){ 
    Log.d("MAP", maps.get(i).toString()); 
}