java json 转换时出错

java json error on casting

我的 Java 代码如下所示:

import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
String jsonMember = strUrl;
String strMember = readUrl(jsonMember);

if (!Validator.isEmpty(strMember)) {
    Object obj = parser.parse(strMember);
    JSONObject jo = (JSONObject) obj;
    JSONArray jsonArrayMember = (JSONArray) jo.get("member");
    for (int j = 0; j < jsonArrayMember.size(); j++) {
        JSONObject memberObj = (JSONObject) jsonArrayMember.get(j);
        String name = memberObj.get("name").toString();
        String age = memberObj.get("age").toString();
    }
}

strUrl 如下所示:

{
    "team": {
        "team_id": "2",
        "team_name": "volcanoe"
    },
    "member": [
        {
            "name": "Samantha",
            "age": "20"
        }
    ]
}

它给我如下错误:

java.lang.ClassCastException: java.lang.Boolean cannot be cast to org.json.simple.JSONArray

行:

JSONArray jsonArrayMember = (JSONArray) jo.get("member");

我试图读取 json 的成员元素,但奇怪地得到了布尔错误。 json 中的 None 正在使用布尔值,它们是 json 对象。

额外信息: 代码在开发服务器上运行良好,但是当投入生产时,它导致了上述错误。与代码或导入的 library/jdk 有什么关系吗?

任何帮助都会很棒。

由于"team"是一个json对象{},"member"是一个json数组[],

你应该试试这个

JSONArray jsonArrayMember = jo.getJSONArray("member");

希望对您有所帮助

String jsonString="{\"team\": {\"team_id\": \"2\",\"team_name\": \"volcanoe\"},\"member\": [{\"name\": \"Samantha\",\"age\": \"20\"}]}";

JSONObject jsonObject = new JSONObject(jsonString);

JSONArray jsonArrayMember=jsonObject.getJSONArray("member");

System.out.println(jsonArrayMember);

能否将您的 org.json jar 文件更改为此 link org.json 中的文件,然后重试希望这能解决您的问题