2017-03-24 46 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