如何解决如何处理JSON值中的双引号?
我有作为HTTP响应收到的字符串。不幸的是,字符串完全是原始格式,我无法将其转换为JSON对象。
示例字符串:
json_string = '{"client_id":8888,"time":null,"questions":{"id":10000,"answered":"true","answer":"The "project" was good,I enjoyed it. Do you plan to repeat it?"},"other":"When is the "project" released?"}'
字符串的问题是它在某些值(用户答案)中包含双引号。可以包含双引号的值的键并不总是相同的(此处“ answer”和“ other”在其他响应中可能有所不同)。用户答案可以包含任何字符(逗号,方括号,双引号等)。
我尝试使用不同的加载器(json,yaml),甚至尝试使用regexp自己解析字符串,但是我一直失败。
有什么方法可以将该字符串转换为JSON对象吗?
解决方法
要清楚,这里的正确解决方案是修复发送该HTTP响应的所有内容;在JSON字符串中包含双引号的正确方法是反斜杠:
{ "key": "value with \"double quotes\" inside" }
任何JSON解析器都应将以上内容视为有效对象。
您不能可靠地解析带有未转义引号的内容,因为您无法分辨出哪些是实际的字符串定界符,哪些是封闭的数据。如果您可以假设引号是平衡的(因此在任何字符串中总是有双引号),则可以构造一个解析器以将其转换为正确的语法,但这不会是基于regex的简单修复。
也就是说,对于您的示例数据,看起来嵌入式引号被空格包围,而实际的定界符引号却没有。因此,您可以尝试通过将 "
(空格引号)替换为 \"
(空格反斜杠引号)和将"
(引号空间)替换为\"
来运行它(反斜杠引号空间),看看是否可行。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。