如何使用Java获得更多相同密钥的一个值

Fel*_*sso 0 java json

我在服务器中收到一个JSON字符串,它只有两个参数:名称和数字.查找以下示例:

{"name":"outlet.jpg","numbar":"2"},{"name":"image.jpg","number":"3"}, {"name":"testing.jpg","number":"1"}
Run Code Online (Sandbox Code Playgroud)

我正在尝试在String数组中解压缩这个值.我该怎么做?

这是我到目前为止:

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();
        }
Run Code Online (Sandbox Code Playgroud)

jsonObject中没有getString()返回一个Array.此示例仅获取JSON字符串的第一个元素.如何为JSON字符串的每个键接收字符串数组?

Jas*_*ske 5

您使用的是错误的类型.你想要的是一个JSONArray.

这个JSON:

[{"name":"outlet.jpg","number":"2"},{"name":"image.jpg","number":"3"}, {"name":"testing.jpg","number":"1"}]
Run Code Online (Sandbox Code Playgroud)

这段代码:

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);
}
Run Code Online (Sandbox Code Playgroud)

应该产生这个输出:

name: outlet.jpg number: 2
name: image.jpg number: 3
name: testing.jpg number: 1
Run Code Online (Sandbox Code Playgroud)