代码之家  ›  专栏  ›  技术社区  ›  Teddybugs

铸造JavaJSON错误

  •  0
  • Teddybugs  · 技术社区  · 7 年前

    我的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();
        }
    }
    

    这个 粗纱 如下所示:

    {
        "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有关?

    任何帮助都会很好。

    2 回复  |  直到 7 年前
        1
  •  1
  •   Gokul raj    7 年前

    希望这对你有帮助

    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 再试一次希望这能解决你的问题

        2
  •  0
  •   Panup Pong    7 年前

    由于“team”是JSON对象,因此“member”是JSON数组[],

    你应该试试这个

    JSONArray jsonArrayMember = jo.getJSONArray("member");
    
    推荐文章