Angularjs 可以对双引号JSON使用转义字符

Angularjs 可以对双引号JSON使用转义字符,angularjs,json,Angularjs,Json,我有一个没有转义字符的json,我的代码无法解析它,因为没有转义字符。我可以通过在双引号前添加一个\来实现。然而,由于一些限制,我正在寻找解决办法,我想知道-- a。有没有其他方法可以让这个json在没有转义字符的情况下工作,并且在我的应用程序上按原样显示带有双引号的内容,或者 b。我是否需要在所有双引号之前有一个转义字符,并且没有解决方法 "abc": { "x1": { "text1": "key1", "text2": "Given "Example

我有一个没有转义字符的json,我的代码无法解析它,因为没有转义字符。我可以通过在双引号前添加一个
\
来实现。然而,由于一些限制,我正在寻找解决办法,我想知道--

a。有没有其他方法可以让这个json在没有转义字符的情况下工作,并且在我的应用程序上按原样显示带有双引号的内容,或者

b。我是否需要在所有双引号之前有一个转义字符,并且没有解决方法

"abc": {
    "x1": {
        "text1": "key1",
        "text2": "Given "Example text" is wrong"
    }
}

谢谢

您的示例是无效的JSON,但我想您知道这一点。:-)

我是否需要在所有双引号之前有一个转义字符

是的,在JSON字符串中包含
的唯一方法是使用某种转义。与JavaScript不同,JSON没有
分隔的字符串或成为字符串的反勾分隔模板(ES2015中新增)。可以使用两种不同的转义序列(
\)
\u0022
等),但它们仍然是转义序列。毕竟,
是JSON解析器知道它找到字符串末尾的方式

在HTML的特定情况下,如果要将字符串解释为HTML,也可以使用
(命名字符实体)。但这并不能改变您需要正确转义字符串的事实(因为换行符和其他几个字符也需要转义,而不仅仅是


我的经验是,生成JSON的最佳方法是在内存中生成一个结构,然后使用您环境的功能将该结构转换为有效的JSON。在JavaScript中,这是
JSON.stringify
;在PHP中,这是
JSON_encode
;等等。您可以找到的任何语言或环境都有JSON库(内置或不内置)。您应该添加escape char()以获得有效的JSON。 根据,这是JSON中使用的特殊字符列表:

  • \b退格(ascii码08)
  • \f表单馈送(ascii代码0C)
  • \新线
  • \回车
  • \t形标签
  • \“双引号
  • \反斜杠字符

如果嵌入的双引号没有转义字符,那么它就不是合法的JSON。您可以在RFC compliance language中找到完整的规范。转义是
必须
,而不是
应该
。这就是为什么它是大写的。您没有理解我的观点-转义引号是绝对的要求,而不是“应该”的要求完成。参见RFC 2119。