我有这个 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/