Ami*_*rty 45 java parsing json
我有一些JSON具有以下结构:
{"source":[
{"name":"john","age":20},
{"name":"michael","age":25},
{"name":"sara", "age":23}
]
}
Run Code Online (Sandbox Code Playgroud)
我将此JSON字符串命名为mainJSON
.我正在尝试使用以下Java代码访问元素"name"和"age":
JSONArray jsonMainArr = new JSONArray(mainJSON.getJSONArray("source"));
for (int i = 0; i < jsonMainArr.length(); i++) { // **line 2**
JSONObject childJSONObject = jsonMainArr.getJSONObject(i);
String name = childJSONObject.getString("name");
int age = childJSONObject.getInt("age");
}
Run Code Online (Sandbox Code Playgroud)
我在第2行显示以下异常:
org.json.JSONException: JSONArray initial value should be a string or collection or array.
Run Code Online (Sandbox Code Playgroud)
请指导我哪里弄错了以及如何纠正这个问题.
Cha*_*ndu 50
mainJSON.getJSONArray("source")
返回一个JSONArray
,因此你可以删除new JSONArray.
带有object参数的JSONArray构造函数需要它是一个Collection或Array(而不是JSONArray)
试试这个:
JSONArray jsonMainArr = mainJSON.getJSONArray("source");
Run Code Online (Sandbox Code Playgroud)
小智 9
您的代码很好,只需替换以下行:
JSONArray jsonMainArr = new JSONArray(mainJSON.getJSONArray("source"));
Run Code Online (Sandbox Code Playgroud)
用这一行:
JSONArray jsonMainArr = mainJSON.getJSONArray("source");
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
179387 次 |
最近记录: |