首页 > 解决方案 > 投射时的java json错误

问题描述

我的 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 使用布尔值,它们是 json 对象。

额外信息: 代码在开发服务器上工作正常,但在投入生产时,导致上述错误。与导入的代码或库/jdk 有什么关系吗?

任何帮助都会很棒。

标签: javajsonjson-simple

解决方案


希望对你有帮助

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 文件更改为此链接中的org.json 并重试,希望这能解决您的问题


推荐阅读