2014-10-29 87 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定義的一部分。