如何从 JSON 字符串中删除括号和引号
Posted
技术标签:
【中文标题】如何从 JSON 字符串中删除括号和引号【英文标题】:How to remove brackets and quotation marks from JSON String 【发布时间】:2013-08-22 20:47:44 【问题描述】:我有一个 ArrayAdapter 将 JSON 字符串放入列表视图。问题是当它将字符串放入 textview 时,它会留下括号和引号。例如,如果字符串包含名称 Bob。该字符串将在 ListView 中显示为 ["Bob"]。如何删除括号和引号?
这是我用来获取 JSON 字符串的方法,
String username = json2.getString(KEY_USERNAME);
String number = json2.getString(KEY_NUMBER);
String content = json2.getString(KEY_COMMENT);
tempList2.add (new Item (username, number, content));
customAdapter.addAll(tempList2);
【问题讨论】:
您的customAdapter
如何将每个Item
绑定到View
? getView
(或bindView
,如果您使用的是CursorAdapter
)中有什么?在将其绑定到项目视图的 TextView
之前,它似乎正在对您的项目进行某种 toString
/serialization。
嗯,我按照 phil 告诉我的去做,而且效果很好。所以这完全是因为 JSON。
Phil 的解决方案只是修补后果,但没有解决问题的根源。我们很难判断错误在哪里,因为您从未发布过原始输入 JSON。可能与KEY_USERNAME
关联的值是一个包含字符串"Bob"
的数组,它会被解析为包含一个String
的JSONArray
。在这种情况下,getString
将在 JSONArray
上调用 toString
,这将返回该 JSONArray
的 JSON 表示。这可以解释括号,但没有输入 JSON 就无法确定。
【参考方案1】:
你可以使用简单的replace
:
String bob = "[\"Bob\"]";
bob = bob.replace("[", "").replace("\"", "").replace("]", "");
Log.i("Test", bob);
这现在只会打印Bob
【讨论】:
【参考方案2】:作为 Phil 回答的附加内容,结尾引用(在我的 chrome 浏览器中)没有被删除。我在最后再次使用.replace("\"", "")
修复了它。
【讨论】:
以上是关于如何从 JSON 字符串中删除括号和引号的主要内容,如果未能解决你的问题,请参考以下文章
如何删除单引号,并在转换为to_json后将括号添加到pandas数据框中?
如何从 CURL 响应 PHP API 的 JSON 字符串中删除引号、不需要的数据