可以't$.parseJSON()当字符串保持src=“”时"或者id=“0”"属性
Can't $.parseJSON() when string holds src="" or id="" attributes
执行此操作时,我可以使用$.parseJSON():
var myString = '{ "Header": "<p>some content</p>"}';
var modelJsonObject = $.parseJSON(myString);
而当"Header"
值保持src=""
、id=""
等时则不是。如下所示:
var myString = '{ "Header": "<p><img src='"http://placehold.it/50x50'" style='"line-height: 1.3; width: 50px;'"><br></p>"}';
然后我在控制台中得到一个SyntaxError:意外的令牌
该怎么办?
由于JSON字符串以引号("
)开始和结束,字符串中的任何此类引号都必须转义,如:'"
因此,仅由引号组成的JSON字符串将为"'""
。
但还有JavaScript的语法。在JS中写为''"'
的字符串产生字符串"
。(试试console.log(''"')
。)由于反斜杠在JS中有特殊含义,所以必须对其进行转义。
以上内容的总和是,一个仅由JS中的引号组成的JSON字符串将是:
'"''""'
最后,你的字符串必须这样写:
var myString = '{ "Header": "<p><img src=''"http://placehold.it/50x50''" style=''"line-height: 1.3; width: 50px;''"><br></p>"}';
// 1 2 3
- 是JavaScript字符串的开头
- 是JSON字符串的开头,在JS字符串中
- 是JSON字符串中的引号
请注意,在JS中使用单引号可以避免对JS使用双引号,但JSON语法仍然必须正确。如果我们对字符串使用双引号,那么我们最终会得到一个看起来很有趣的东西:
"{ '"Header'": '"<p><img src='''"http://placehold.it/50x50'''" style='''"line-height: 1.3; width: 50px;'''"><br></p>'"}";
其中,'''"
是一个JS转义的反斜杠(''
),后跟一个JS escaped引号('"
),生成一个JSON转义引号。
相关文章:
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- difference between '$(<%= DDL.ID %>) & $('
- 使用Javascript获取所选选项ID
- 根据id将json数组组合为一个json数组
- 是否有一个JS/jQuery函数可以获取某个类的每个元素的ID
- 铬:“;未捕获的语法错误:意外的标记:"
- 对id以某个字符串开头的元素进行计数
- Javascript复选框函数:;缺少:在属性id之后"
- 取出图像标签alt:丢失"没有alt-id的图像标签是优选的并且不显示丢失的“;
- "无法读取属性'id'未定义的“;解析工厂中声明的数组时
- 无法调用方法“”;getEditResponseUrl"当使用表单ID打开表单时,绑定到工作表的Google
- Jade:带双“的数据id""&”;
- Knockout.js动态选择模板错误:"找不到ID为'的模板'&”;
- 如何获得类似id的"invokedOn”;使用Bootstrap ContextMenu通过右键单击事件显示文
- 可以't$.parseJSON()当字符串保持src=“”时"或者id=“0”"属性
- chrome.identity.getAuthToken返回"错误的客户端id:{0}”;错误
- 使树形式[{“id": 1},{“id": 2,“children":[{“id":
- Javascript-JQuery:找不到id和.html(")或getElementById并设置inner
- "ctl00_ Body”;在asp.net中生成的对象'id
- & lt;跨度id =“display_XXXXX"祝辞& lt; / span>没有显示任何东西,或者显示“未