error main中的类强制转换异常

时间:2016-09-26 10:42:41

标签: java json csv

我正在尝试将json文件转换为csv文件,我正在使用以下代码

Exception in thread "main" java.lang.ClassCastException

我的json文件有大量数据,看起来像这样

  

{     "值":[       {         "名称":" accountleadscollection""种类":" EntitySet的"" URL":" accountleadscollection& #34;       },{         "名称":"帐户""那种":" EntitySet的""网址":"账户& #34;       },{         "名称":" activitymimeattachments""种类":" EntitySet的"" URL":" activitymimeattachments& #34;       },{         "名称":" activityparties""种类":" EntitySet的"" URL":" activityparties& #34;       },{         "名称":" activitypointers""种类":" EntitySet的"" URL":" activitypointers& #34;       },{         "名称":"注释""种类":" EntitySet的"" URL":"注释& #34;       },{         "名称":" annualfiscalcalendars""种类":" EntitySet的"" URL":" annualfiscalcalendars& #34;       },{...............

每当我尝试执行代码时,我都会收到此错误{{1}}。我遵循的逻辑是正确的还是任何人都可以提供更好的代码,我正在实现一个具有此方法的接口。

1 个答案:

答案 0 :(得分:0)

  1. 转换String中的JSONObject
  2. 使用JSONObject方法在getJSONArray("arraName")中获取数组。
  3. 如果数组由Object组成,则迭代数组,然后使用方法getJSONObject(index)使用索引获取对象。
  4. 现在使用密钥获取值。
  5. 以下是您可以执行此操作的示例代码。

    从字符串中解析JSON:

         public void convert() throws JSONException {
                String jsonString = readFile("prop.json"); //URL of your json file
                JSONObject jsonObj = new JSONObject(jsonString);     
                JSONArray jsonArr = jsonObj.getJSONArray("value");
                for (int j = 0; j < jsonArr.length(); j++) {
                    JSONObject tempJsonObj = jsonArr.getJSONObject(j);
                    System.out.println(tempJsonObj.get("name"));
                    System.out.println(tempJsonObj.get("kind"));
                    System.out.println(tempJsonObj.get("url"));
                }
    }
    

    读取JSON文件:

    public String readFile(String filename) {
            String result = "";
            try {
                BufferedReader br = new BufferedReader(new FileReader(filename));
                StringBuilder sb = new StringBuilder();
                String line = br.readLine();
                while (line != null) {
                    sb.append(line);
                    line = br.readLine();
                }
                result = sb.toString();
            } catch (Exception e) {
                e.printStackTrace();
            }
            return result;
        }