首页 > 解决方案 > 从 JSON API 获取数据并循环放入 CSV

问题描述

我设法从 API 中获取数据并放入 CSV,但是我无法将数据循环放入 CSV,因为现在它总是在 CSV 中覆盖它。下一个问题是日期没有显示在 CSV 的不同字段中。在 CSV 中,它看起来

像这样:

CSV 图片

我想要控制台中的所有数据:

控制台图片

我现在的代码:

    JSONArray jsonarr_1 = (JSONArray) jobj.get("infectedByRegion");
            //Get data for Results array
            for(int i=0;i<jsonarr_1.size();i++)
            {
                //Store the JSON objects in an array
                //Get the index of the JSON object and print the values as per the index
                JSONObject jsonobj_1 = (JSONObject)jsonarr_1.get(i);
                //Store the JSON object in JSON array as objects (For level 2 array element i.e Address Components)
                String str_data1 = (String) jsonobj_1.get("region");
                Long str_data2 = (Long) jsonobj_1.get("infectedCount");
                Long str_data3 = (Long) jsonobj_1.get("deceasedCount");

                System.out.println(str_data1);
                System.out.println("Infizierte: "+str_data2);
                System.out.println("Tote: "+str_data3);
                System.out.println("\n");

                   PrintWriter pw = null;
                    try {
                        pw = new PrintWriter(new File("C:/Users/stelz/OneDrive/Desktop/Corona Daten/28.04.2020.csv"));
                    } catch (FileNotFoundException e) {
                        e.printStackTrace();
                    }
                    StringBuilder builder = new StringBuilder();
                    String columnNamesList = "Bundesland,Infizierte,Tote";
                    // No need give the headers Like: id, Name on builder.append
                    builder.append(columnNamesList +"\n");
                    builder.append(str_data1+",");
                    builder.append(str_data2+",");
                    builder.append(str_data3);
                    builder.append('\n');
                    pw.write(builder.toString());
                    pw.close();
                    System.out.println("done!");









            }
            //Disconnect the HttpURLConnection stream
            conn.disconnect();

标签: javajsonloopscsv

解决方案


看起来您正在尝试创建许多不同的 CSV?如果这不是您想要的,并且您想要一个 CSV 中的所有记录,那么我建议遍历数组,使用StringBuilder或其他一些 CSV 工具构建一个 CSV,然后在循环之外创建文件for


推荐阅读