Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Java解析JSON文件时出错_Java_Arrays_Json - Fatal编程技术网

使用Java解析JSON文件时出错

使用Java解析JSON文件时出错,java,arrays,json,Java,Arrays,Json,我在解析以下JSON文件时遇到错误。如果有人能帮助我,我们将不胜感激 {"Name":"Abc", "Author":"fgd", "Company List":{"Company":"C1","Companyone":"Compa2"}} 这是我的密码:- JSONParser parser = new JSONParser(); try { Object obj = parser.parse(new FileReader("/Users/abcdefgh/Doc

我在解析以下JSON文件时遇到错误。如果有人能帮助我,我们将不胜感激

{"Name":"Abc", "Author":"fgd", "Company List":{"Company":"C1","Companyone":"Compa2"}}
这是我的密码:-

JSONParser parser = new JSONParser();

    try {

        Object obj = parser.parse(new FileReader("/Users/abcdefgh/Documents/File1.txt"));

       JSONObject jsonObject = (JSONObject) obj;

        String name = (String) jsonObject.get("Name");
        String author = (String) jsonObject.get("Author");
        System.out.println("Name: " + name);
        System.out.println("Author: " + author);
       // JSONArray companyList= new JSONArray();
        //companyList.add(obj);
      JSONArray companyList = (JSONArray) jsonObject.get("Company List");


        System.out.println("Company List:");
       /* for (int i=0;i<2;i++){
            System.out.println(companyList.get(i));

        }
        */Iterator<String> iterator = companyList.iterator();
        while (iterator.hasNext()) {
            System.out.println(iterator.next());
        }
输出:-

姓名:Abc

作者:fgd

java.lang.ClassCastException:org.json.simple.JSONObject不能为空 转换为org.json.simple.JSONArray com.selenium.test.JSONRead.mainJSONRead.java:29


companyList是一个JSON对象,而不是数组。这就是为什么会出现类强制转换异常。

公司列表属性的属性类型是object,而不是数组

更换线路

JSONArray companyList = (JSONArray) jsonObject.get("Company List");
用于:

如果要获取值​​对于此对象,可以执行以下操作:

JSONObject companyList = jsonObject.getJSONObject("Company List");
String company = companyList.getString("Company");

记住,要获取JSONObject(数组)属性的值,必须使用该方法。

谢谢,但是如何提取CompanyList组件呢?谢谢你的回复!。。使用getJSONObject,我能够成功地解析它。
JSONObject companyList = jsonObject.getJSONObject("Company List");
String company = companyList.getString("Company");