使用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

回到顶部