有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

转换时出现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有关

任何帮助都会很好


共 (1) 个答案

  1. # 1 楼答案

    希望这对你有帮助

    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);
    

    你能换一下你的组织吗。将json jar文件添加到这个链接org.json中,然后再试一次,希望这能解决您的问题