当前位置: 首页 > 面试题库 >

Android:解析双引号内的JSON字符串

怀浩大
2023-03-14
问题内容

我通常使用以下代码来解析JSON字符串:

JSONObject jobj = new JSONObject(message);
strmsg = jobj.getString("text");

当数据如下所示时,效果很好:

{"emailAddress": "testuser@gmail.com"}

突然之间,当输入其他数据时,我遇到了问题。解析失败,并且在调试时,我发现该字符串如下所示:

"{\"emailAddress\":\"testuser@gmail.com\”}"

显然,我得到双引号内的JSON字符串。2个简短的问题:1)这是否正常,并且JSONObject应该能够解析它吗?2)如果不是,建议的处理方式是什么?


问题答案:

这似乎是JSON生成中的错误。JSON实际上应该在此处引发解析错误。如果无法更改方式,则会生成JSON字符串,您需要手动清理它。删除大括号周围的引号,并删除引号(您可以通过simplay调用jsonString.replace(“
\\”“,” \“”来做到);尽管这看起来有些麻烦,但转义是必要的…

String test = "\"{\\\"emailAddress\\\":\\\"testuser@gmail.com\\\"}\"";
test.replace("\\\"", "\"");


 类似资料:
  • 问题内容: 即使已转义,双引号也会引发解析错误。 看下面的代码 由于双引号(已被转义),因此将引发解析错误。 甚至在这里都不行。 但是,如果我用这样的双斜杠将其转义: 然后就可以了 为什么我们需要在javascript中使用双斜杠?问题是,PHP 函数转义一个单斜杠双引号(是这样的:),这将无法解析。我该如何处理这种情况? 问题答案: 好吧,最后,JSON的解析使用相同的eval,因此,给它们sm

  • 问题内容: 这是我的Json代码的示例: 如果我在程序中打印出该属性,则会得到以下输出: 如您所见,它保留了双引号。 有什么办法可以避免这种情况吗? 我的完整代码: java代码将其打印出来: 我的完整Java代码 我的Java程序的输出: 问题答案: 它的文档记录不正确,但是会为您提供一个表示JSON元素的字符串,并且适合于重新创建JSON序列化。你想要的是。如果您不查看字符串,这将引发错误,但

  • 我正在尝试使用OpenCSV解析CSV文件。其中一列以YAML序列化格式存储数据,并被引用,因为其中可以包含逗号。它里面也有引号,所以它通过放两个引号来转义。我能够在Ruby中轻松解析这个文件,但使用OpenCSV我无法完全解析它。这是一个UTF-8编码的文件。 这是我的Java片段,它试图读取文件 这是此文件中的2行。第一行没有被正确解析,并且在处被拆分,因为我猜是转义双引号。

  • 下面是JSON字符串: 为了在java对象中反序列化这个字符串,我必须删除\,这可以使用string replace方法来完成。除此之外,在[和]之前还有双引号。我如何删除这些双引号或允许它们时,反序列化使用杰克逊。

  • 问题内容: 我在python中解析json字符串时遇到问题,因为在字符串值中有多余的双引号,例如 我正在尝试将其转换为列表,以便进一步评估,如下所示: 我如何将json字符串更改为this ,以便对其进行正确评估。 编辑 只是为了强调我知道json无效,但这是我所拥有的,并且更改源不是一个选择。我目前正在努力解决此限制。 问题答案: 我怀疑这会工作(在repl.it上的工作示例),它使用以下正则表