2017-03-24 90 views
-3

如何刪除」,」從一個JSON陣列? 想過一個正則表達式,但即時通訊不熟悉如何對其進行過濾,或可能有一個更簡單的方法?JSONarray爲字符串沒有「

我的電流輸出:["ceratia","direwolf1102","fctwentegirl","nightbot","onecat","sohappybot"]

,我需要它是:

ceratia direwolf1102 fctwentegirl nightbot onecat sohappybot 
+1

我不明白。只需解析數組,並打印其值。或者用一個空格作爲分隔符來累積它們。 –

+0

你能分享你實施的代碼嗎? – Sid

+0

它很難共享代碼,因爲它不是全部在同一個地方:p知道iw的東西,最終我有一個json ARRAY如上圖所示,我想輸出它沒有「,」所以即時通訊尋找一個簡單的方法來轉換它 – user3220962

回答

2

我會避免操縱與toString()方法創建的字符串,因爲它很容易刪除的東西,你不想讓說您的令牌包含的內容。 []。這意味着您不能簡單地致電replace("]",""),因爲它將刪除所有],包括字符串值中的一個。同樣約"","

相反,只需遍歷你得到的數組,將所有的標記放在StringJoiner中,使用空格作爲分隔符,然後打印該連接器。

JSONArray arr = new JSONArray(); 
arr.put("foo"); 
arr.put("bar"); 

System.out.println(arr);//to show incorrect format 

StringJoiner sj = new StringJoiner(" "); 
for (int i = 0; i < arr.length(); i++){ 
    sj.add(arr.getString(i)); 
} 
System.out.println(sj); 

輸出:

["foo","bar"] 
foo bar 
+0

但這隻會刪除基於給定文本的東西嗎?我上面發佈的用戶名每次都會有所不同。 – user3220962

+0

@ user3220962「基於給定文本」是什麼意思?如果你指的是「foo」和「bar」,那麼它在這裏只是作爲一個例子來顯示結果的差異。你可以使用'JSONArray arr = json.getJSONObject(「chatters」)。getJSONArray(「moderators」)'獲得你想要的數據給你自己的JSON數組。 – Pshemo

+0

啊現在我明白了x)首先,我想一步一步地使用str.replace並逐個刪除部件,但是您的操作非常簡單。 :d – user3220962