我在服务器中收到一个JSON字符串,它只有两个参数:name和number。查找以下示例:
{"name":"outlet.jpg","numbar":"2"},{"name":"image.jpg","number":"3"}, {"name":"testing.jpg","number":"1"}
我正在尝试在String Array中解压缩这些值。我该怎么办?
这是我到目前为止所做的:
JSONObject jsonObject;
try {
jsonObject = new JSONObject(jsonString.substring(1, jsonString.length()-1));
String name = jsonObject.getString("name");
String number = jsonObject.getString("number");
System.out.println("nome: " + name + " number: " + number);
} catch (JSONException e) {
e.printStackTrace();
}
jsonObject中没有返回Array的getString()。 此示例仅获取JSON字符串的第一个元素。如何为JSON字符串的每个键接收字符串数组?
答案 0 :(得分:5)
您使用的是错误的类型。你想要的是JSONArray。
这个JSON:
[{"name":"outlet.jpg","number":"2"},{"name":"image.jpg","number":"3"}, {"name":"testing.jpg","number":"1"}]
这段代码:
JSONArray json = new JSONArray(jsonString);
for(int index = 0; index < json.length(); index++) {
JSONObject jsonObject = json.getJSONObject(index);
String name = jsonObject.getString("name");
String number = jsonObject.getString("number");
System.out.println("name: " + name + " number: " + number);
}
应该产生这个输出:
name: outlet.jpg number: 2
name: image.jpg number: 3
name: testing.jpg number: 1