java - 为什么我无法访问 json 中的对象?

标签 java json servlets

我有这个 json 字符串,来自 java 脚本:

[{"clientNumber":"33"},{"clientName":"3"},{"clientEik":"3"}]

当我将它放入我的 servlet 中时,这就是我正在做的事情:

JSONArray jsonArr = new JSONArray(URLDecoder.decode(mainData, "UTF-8"));
dataObj.put("data", jsonArr);

现在看起来像:

{"data":[{"clientNumber":"33"},{"clientName":"3"},{"clientEik":"3"}]}

我想做的是通过以下方式获取clientNumber:

dataObj.getString("clientNumber")

但它正在轰炸我,但有一个异常(exception):

org.json.JSONException:找不到 JSONObject["clientNumber"]。

为什么我无法访问它?我知道我错过了一个非常小的部分,但我无法下定决心找到它。

最佳答案

似乎data字段是一个JSONArray。您需要通过索引获取元素,请引用代码:

更新:

使用getJSONObject(index).getString(key)访问数据:

try {
        String data = "[{\"clientNumber\":\"33\"},{\"clientName\":\"34\"},{\"clientEik\":\"35\"}]";

        JSONArray jsonArr = new JSONArray(URLDecoder.decode(data, "UTF-8"));
        JSONObject dataObj = new JSONObject();
        dataObj.put("data", jsonArr);

        JSONArray jsonarr = dataObj.getJSONArray("data");

        String clientNumber = jsonarr.getJSONObject(0).getString(
                "clientNumber");
        System.out.println(clientNumber);
        String clientName = jsonarr.getJSONObject(1)
                .getString("clientName");
        System.out.println(clientName);
        String clientEik = jsonarr.getJSONObject(2).getString("clientEik");
        System.out.println(clientEik);

    } catch (Exception e) {
        e.printStackTrace();
    }

关于java - 为什么我无法访问 json 中的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22632212/

相关文章:

java - 评估 Java 中的数学表达式

javascript - JSON 绑定(bind)到 Javascript 对象

java - 如何在不使用 HTML 标签的情况下制作漂亮的 jsp GUI?

java - jOOq 键产生错误查询

java - 如何在为路径提供变量的同时使用 spring select 标签获取列表

javascript - 如何在json2html中使用onclick

Ruby,Telnet,无超时读取多行响应

java - 选择参数=?但如果?是一个空格,返回该列的任何值

android - 如何压缩 JSONObject 在 Android 中通过 Http 发送?

java - 边界框没有正确跟随 Sprite 。 ( java )