我有一个没有转义字符的json,我的代码无法解析,因为没有转义字符。我可以通过在双引号之前添加\
来使其工作。但是,由于某些限制,我正在寻找一种解决方法,我想知道 -
一个。有没有其他方法我可以使这个json工作没有转义字符和带双引号的内容按原样显示在我的应用程序上,或
湾在所有双引号之前我是否一定需要一个转义字符并且没有解决方法?
"abc": {
"x1": {
"text1": "key1",
"text2": "Given "Example text" is wrong"
}
}
谢谢!
答案 0 :(得分:5)
你的例子是无效的JSON,但我想你知道。 : - )
我必须在所有双引号
之前使用转义字符
是的,在JSON字符串中使用"
的唯一方法是使用某种转义。与JavaScript不同,JSON没有'
- 分隔字符串或反引号分隔的模板,这些模板成为字符串(ES2015中的新功能)。您可以使用几种不同的转义序列(例如\"
和\u0022
),但它们仍然是转义序列。毕竟,"
是JSON解析器知道它找到字符串结尾的方式。
在HTML的特定情况中,如果您将字符串解释为HTML,则还可以使用"
(命名字符实体)。但这并没有改变你需要正确转义字符串的事实(因为换行符和其他几个字符也需要转义,而不仅仅是"
)。
我的经验是,生成JSON的最佳方法是在内存中生成一个结构,然后使用环境的工具将该结构转换为有效的JSON。在JavaScript中,JSON.stringify
;在PHP中,它是json_encode
;您可以找到的任何语言或环境都有一个JSON库(内置或不内置)。
答案 1 :(得分:1)
您应该添加escape char()以获得有效的JSON。 根据{{3}},这是JSON中使用的特殊字符列表: