2014-11-25 103 views
0

我有一些数据为JSON格式的mongodb数据库...我想将其转换为JSON格式以供进一步处理....我将数据转换为CSV格式,但我不想CSV文件中的标题....我想从CSV文件中删除标题。希望我的问题现在很清楚.........如何使用CDL将CSV写入JSON而不使用标题行使用CDL

我的CSV文件格式如下。

**date,lng,time,place** 

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

我将我jsondata为CSV,并试图更换标题日期,LNG,时间,地点但我没有发现任何方式,通过编码来做到这一点.....任何人都可以引导我....

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(); 
    } 
+0

*您如何*写入CSV文件?代码中的字符串“csv”是否包含CSV文件的内容? – toddlermenot 2014-11-25 05:18:34

+0

@toddlermenot我编辑了我的问题..... – chopss 2014-11-25 05:22:18

回答

2

的解决方案是使用接受名称的单独阵列的toString,通过像这样的名字:

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

如果你想避免JSONException在一个空的docs阵列上,您将要检查以确保docs在执行上述操作之前不是空的。

有关详细信息,看看该文档CDL,尤其CDL.toString(JSONArray, JSONArray),其中规定:

名称的列表不输出包括在内。

如果你看看the source,你可以更清楚地了解发生了什么。

请注意,如果您想要更改输出中的一组列或其顺序,您可以传入任意JSONArray作为第一个参数的名称 - 输出列将对应于该数组中的名称。

+0

这个作品完美.....谢谢.... – chopss 2014-11-25 05:42:43

+0

如果我们想直接读取CSV而无需标题,该怎么办 – chopss 2014-11-29 10:52:47

相关问题