使用json-smart读取JSON文件
我正在尝试从JSON文件读取值到数组以进行进一步处理。我正在使用JSON-Smart 1.2.0库。由于某些限制,我不能使用2.0版本。
我收到以下异常。
java.lang.ClassCastException: net.minidev.json.JSONArray cannot be cast to net.minidev.json.JSONObject
我什至尝试使用JSONArray而不是JSONObject。我在这儿做错了什么?这是读取JSON内容的正确方法吗?
以下是Java代码。
JSONObject json = (JSONObject) JSONValue.parseWithException(browsers);JSONArray array = (JSONArray) json.get("friends");
for (int i = 0; i < array.size(); i++) {
JSONObject cap = (JSONObject) array.get(i);
String first = (String) cap.get("name");
System.out.println(first);
}
以下是json文件的内容。
[ {
"friends": [
{
"id": 0,
"name": "test1"
},
{
"id": 1,
"name": "test2"
}
]
}
]
回答:
您的JSON包含一个具有单个对象元素的数组,因此您应该像这样解析它:
JSONArray root = (JSONArray) JSONValue.parseWithException(json);JSONObject rootObj = (JSONObject) root.get(0);
JSONArray array = (JSONArray) rootObj.get("friends");
for (int i = 0; i < array.size(); i++) {
JSONObject cap = (JSONObject) array.get(i);
String first = (String) cap.get("name");
System.out.println(first);
}
如果可以包含更多元素,请添加for循环而不是root.get(0)
。
以上是 使用json-smart读取JSON文件 的全部内容, 来源链接: utcz.com/qa/420609.html