2016-11-18 77 views
0

我需要在新行中返回json數組的每個元素。而是在一行中打印。我嘗試使用'/ n'和空格,但它不工作。用新行加入json字符串值

String json = null; 
//split cookie with delimiter to store in array 
String wl[] = wishList.split("~"); 

//JSON RETURN VALUE 
json = "[\""; 
for(int i = 0; i < wl.length; ++i) { 
    json += wl[i]; 
    //tried but didn't work 
    //json.split("\n"); 
} 
json += "\"]"; 
System.out.println(json); 

所以我試圖cancatinating for循環,但它沒有奏效。 我需要走出這樣的

1.abc 
2.bcd 
3.efg 

,但我得到這個輸出

1.abcbcdefg 
+0

您是否閱讀過['String#split'](http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#split(java.lang.String))文檔?只需使用'json + =「\ n」'或'json + = wl [i] +「\ n」'。你的問題的標題也讓我相信你認爲'json'是一個數組,它不是,它是'String'。 –

+1

手動構建JSON是一種反模式。使用像傑克遜或Gson的圖書館 –

回答

1

我使用「/ n」和空間的嘗試,但它不工作。

您應該使用"\n"在你的JSON字符串添加新行,而不是"/n",這是不一樣的東西。你應該爲正則表達式做同樣的事情。

3.行分隔符爲 '\ n'

這意味着 '\ r \ n' 是還支持,因爲尾部的空白被忽略>解析JSON值時。

該文件中的最後一個字符可能是一個行分隔符,並且它將被視爲與沒有行分隔符存在一樣。

來源:http://jsonlines.org/

編輯

JSON數組已逗號陣列和串的單獨的值應引號或雙引號之間。但在開始和結束時不需要「\」。
你可以得到這個字符串:

["abc", 
"bcd", 
"efg"] 

與此代碼:

final String STRING_DOUBLE_QUOTE="\""; 
String json = null; 
// split cookie with delimiter to store in array 
String wl[] = wishList.split("~"); 

// JSON RETURN VALUE 
json = "["; 
for (int i = 0; i < wl.length; ++i) { 
    if (!json.equals("[")) { 
     json += ",\n"; 
    } 
    json += STRING_DOUBLE_QUOTE + wl[i] + STRING_DOUBLE_QUOTE; 
} 
json += "]"; 

System.out.println(json); 
+0

我會指出這是一個錯字,在註釋的代碼中,他使用了正確的'\ n'。但我不明白爲什麼要使用'\\ n'而不是'\ n'。 – AxelH

+0

沒理由。我的錯誤:)謝謝 – davidxxx

0

如果你希望它是在多行,你得將它保存在多個元素,即一個數組。

試試這個:

String wl[] = wishList.split("~"); 

for(int i = 0; i < wl.length; ++i){ 
    System.out.println(wl[i]); 
} 

不能確定這是否是你問什麼,但是這是回答你的書面質詢

1

什麼你正在嘗試做的(如果我得到它的權利)是在~上分割一個字符串,並用它創建一個JSON數組(一個單獨的行)。

您是否想過簡單地替換角色?

String json = "[" + wishlist.replace("~", ",\n") + "]"; //Added a , to separated each elements 

但是,如果你想自己做,

String json = "["; 
for(int i = 0; i < wl.length; ++i) { 
    json += wl[i] + ",\n"; 
} 
json += "]"; 

您需要添加換行符,而不是再次分裂它。

當然,正如所指出的,這應該使用庫設計來完成,但這裏是對代碼的簡單更正。

PS:我沒有寫出所需的\"可重寫性。但是這兩個解決方案都可以輕鬆添加。