如何从 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 绑定到ViewgetView(或bindView,如果您使用的是CursorAdapter)中有什么?在将其绑定到项目视图的 TextView 之前,它似乎正在对您的项目进行某种 toString/serialization。 嗯,我按照 phil 告诉我的去做,而且效果很好。所以这完全是因为 JSON。 Phil 的解决方案只是修补后果,但没有解决问题的根源。我们很难判断错误在哪里,因为您从未发布过原始输入 JSON。可能与KEY_USERNAME 关联的值是一个包含字符串"Bob"数组,它会被解析为包含一个StringJSONArray。在这种情况下,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 字符串中删除引号、不需要的数据

从 JSON 对象/字符串或 Java 脚本变量中删除开头和结尾的双引号?

JSON特殊字符处理

删除 JSON_AGG(聚合函数)中的括号和引号

Python 操作json