我有一个来自Java脚本的json字符串:
[{"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")
但是它轰炸了我,但有一个例外:
org.json.JSONException: JSONObject["clientNumber"] not found.
为什么我无法访问它?我知道我缺少了很小的一部分,但是我无法下定决心找到它。
最佳答案
看来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();
}