java - 如何使用Java获取同一个键的多个值

标签 java json

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

{"name":"outlet.jpg","numbar":"2"},{"name":"image.jpg","number":"3"}, {"name":"testing.jpg","number":"1"}

我正在尝试将这些值解压到字符串数组中。我该怎么做?

这是我到目前为止所拥有的:

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 中没有返回数组的 getString()。 此示例仅获取 JSON 字符串的第一个元素。如何接收 JSON 字符串的每个键的字符串数组?

最佳答案

您使用了错误的类型。你想要的是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

关于java - 如何使用Java获取同一个键的多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15284544/

相关文章:

java - 如何将opencv代码转换为javacv代码

java - Whitespace Surround Android 相机预览

javascript - 我怎样才能 cfoutput 一个 JavaScript 字符串?

javascript - 从服务器向客户端发送 JSON 格式的 HTML 时,我应该转义内容吗?

json - 如何在 JSON 中表示变体(总和类型)?

Java 互斥体与条件变量的关联

Java:为什么 TimeUnit 缺少枚举?

java - Java 中的垃圾收集示例?

javascript - 我正在尝试从 Json 数组获取下一个对象而不使用成员名称

javascript - 经过验证的JSON抛出SyntaxError : Property must be a string literal