奇怪的json.stringify失败

时间:2014-08-05 21:29:01

标签: javascript jquery html json

奇怪的不是错误本身,而是它发生的方式。在我的内容编辑器中编辑时,所有内容都会在javascript对象中以唯一ID保存,并且在最后保存后会得到json字符串。这项工作对99,99%的用户来说是完美的,但有时json.stringify并没有逃脱报价,而且总是以相同的开头发生。我真的不知道这是怎么发生的。这是javascript对象的图片:

http://cl.ly/image/3B3Z2e413M3r

当然,标记的行是错误,但是如果内容以此行开头,则整个事件(没有转义引号)仅发生。我应该提一下,如果你在编辑器中加载了一个wysiwyg元素,那么就有一个预装备的< h3> ...< / h3>和< p> ...< / p>有一些样本数据。 (默认情况下,h3不居中)

<h3 style="text-align: center;">Sample Headline</h3>

我的问题是我无法重现它。如果我调整我的标题以获得相同的代码,一切都很好。用户获得了最后一个chrome版本,然后没有其他插件,然后jQuery。

任何想法都会很棒,因为我筋疲力尽......

Cliffnotes:

  • json.stringify failes to escape quotes and ....
  • 每当用户发生错误时,我都会看到它以对齐的标题开头,所以我猜它与它有关。

非常感谢。 :)

1 个答案:

答案 0 :(得分:0)

你所展示的是普通的JS对象,而不是JSON(因此它与JSON.stringify()无关)。引号必须仅在代码中的字符串文字中进行转义,以便解释器不会将其与分隔引号混淆。

解析后 - 它们按原样存储在内存中,没有任何转义字符。

示例:http://jsfiddle.net/83GUe/

enter image description here

指南:打开开发人员工具,按Run并查看Scope variables

结论:您在屏幕截图中提供的内容是100%预期和正确的行为。