2014-10-29 85 views
0

我想在JSONArray中放入一个CSV值,我现在可以使用下面的代码,但是JSONArray没有相同的顺序CSV字符串,有人可以请帮忙吗?我正在使用org.json。将CSV的维护顺序转换为JSONArray(使用Java org.json库)

InputStream is = file.getInputStream(); 
BufferedReader br = new BufferedReader(new InputStreamReader(is, "UTF-8")); 
String inputStr, csv = ""; 

while ((inputStr = br.readLine()) != null){ 
    csv += inputStr +"\n"; 
} 

JSONArray array = CDL.toJSONArray(csv); 

我没有发现到CSV转换成JSONArray更简单的方法,将CSV字符串是按照正确的顺序和阵列创建阵列除了确定被取消订购,感谢您的任何建议这可能有帮助。

我看到了这个帖子,但它是一种倒退的,我需要(JSONArray到CSV)Keep the order of the JSON keys during JSON conversion to CSV

+0

那么,当然,你正在构建的不是一个CSV(逗号分隔值)字符串。 – 2014-10-29 15:53:11

+0

你最好建立一个List并转换它。 – 2014-10-29 15:55:06

+0

你是什么意思,它不是一个CSV字符串?该字符串正是cvs文件仅以字符串格式显示的内容。你能提供一个转换列表的例子吗? toJASONArray不包含List。 – Klam 2014-10-29 16:01:59

回答

0

如果输入:

A, B, C 
1, 2, 3 
4, 5, 6 

将变成JSON是这样的:

[ 
{ "A":"1", "B":"2", "C":"3" } 
{ "A":"4", "B":"5", "C":"6" } 
           ] 

但是,A,B和C的值可能以任何顺序出现(甚至不一定是相同的下一行)。对此,你无能为力 - 这是JSON定义的一部分。