如何使用CDL将CSV写入JSON而不使用标题行

时间:2014-11-25 05:11:45

标签: java json csv

我有一些JSON格式的mongodb数据库的数据...我想把它转换成JSON格式以便进一步处理....我把我的数据转换成CSV格式但是我不希望标题出现在CSV文件....我想删除CSV文件中的标题。希望我的问题现在很清楚.........

我的CSV文件格式如下。

 **date,lng,time,place**

 16-05-2013,77.152515,NIGHT,LosAngeles
 16-05-2013,,77.883754,EVENING,NY
 -----------------------------------
 ------------------------------------
 -------------------------------------

我将我的jsondata转换为CSV并试图替换标题日期,行,时间,地点,但我没有找到任何方法通过编码来做到这一点..... Can有人引导我......

    JSONObject root = new JSONObject(data.getJsonData());
    JSONArray docs =  root.getJSONArray("data");
    File file=new File("/home/Documents/file1.csv");
    String csv = CDL.toString(docs);

    System.out.println("csv"+csv);
    try {
        FileUtils.writeStringToFile(file,csv);
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

1 个答案:

答案 0 :(得分:2)

解决方案是使用带有单独数组名称的toString,传递名称如下:

String csv = CDL.toString(docs.getJSONObject(0).names(), docs);

如果您想避免在空的JSONException数组上使用docs,那么在执行上述操作之前,您需要检查以确保docs不为空。

有关详细信息,请查看CDL的文档,特别是CDL.toString(JSONArray, JSONArray),其中声明:

  

输出中不包含名称列表。

如果您查看the source,您可以更清楚地了解正在发生的事情。

请注意,如果要更改输出中的列集或其顺序,可以将所需的任何JSONArray名称作为第一个参数传递 - 输出列将对应于中的名称那个阵列。