Parse JSON-объект со строкой и значением
У меня проблема при попытке выполнить синтаксический анализ с минимальным значением для отображения на Android.
Там некоторый образец формата JSON с дополнительной информацией ex:
[{id:"1", name:"sql"},{id:"2",name:"android"},{id:"3",name:"mvc"}]
Этот пример, наиболее распространенный для использования и простого использования, просто использует getString("id")
или getValue("name")
.
Но как я могу разобрать карту, используя этот формат JSON, только с минимальным форматом строк и значений в java-карту, используя цикл. И поскольку строка json всегда будет отличаться друг от друга. например:
{"1":"sql", "2":"android", "3":"mvc"}
Спасибо
Ответы
Ответ 1
Вам нужно получить список всех ключей, перебрать их и добавить их на свою карту, как показано в следующем примере:
String s = "{menu:{\"1\":\"sql\", \"2\":\"android\", \"3\":\"mvc\"}}";
JSONObject jObject = new JSONObject(s);
JSONObject menu = jObject.getJSONObject("menu");
Map<String,String> map = new HashMap<String,String>();
Iterator iter = menu.keys();
while(iter.hasNext()){
String key = (String)iter.next();
String value = menu.getString(key);
map.put(key,value);
}
Ответ 2
Мой псевдокод будет выглядеть следующим образом:
JSONArray jsonArray = "[{id:\"1\", name:\"sql\"},{id:\"2\",name:\"android\"},{id:\"3\",name:\"mvc\"}]";
JSON newJson = new JSON();
for (each json in jsonArray) {
String id = json.get("id");
String name = json.get("name");
newJson.put(id, name);
}
return newJson;