2012-10-05 56 views
1

我的问题是html内容没有与JSON.parse解析。json解析html内容的错误

  1. 我从内容可编辑div中获取输入。

    var content = $("#contentInput").html();

  2. 我以后JSON.stringify

    var dataToServer= JSON.stringify(content); //sending an object

  3. 我从服务器获取相同的内容将其发送到服务器,我尝试分析它;

    var dataFromServer = JSON.parse(content);

这里我的问题引发解析器抛出错误。接收html数据的内容。

我被试过eval,但在看完some articles后,我被撤回了我的决定。

如何解决问题。

+2

你为什么'JSON.stringify'一个字符串? – Musa

+0

@Musa:这也让我感到惊讶:) –

+0

我正在向服务器发送一个包含内容的对象JSON.stringify –

回答

2

这是fiidle demo的工作代码。

问题是您的服务器损坏内容。请检查您的服务器代码,它可能会添加一些不可打印的字符。

如果内容不是JSON格式,JSON.parse将失败。它严格遵循jsonstring的规则来解析它(我的意思是双引号和其他/)。

您的服务器可能会将一些其他无用的字符添加到内容或jsonstring中。

0

JSON.stringify需要一个JavaScript对象。尝试像这样:

var content = $("#contentInput").html(); 
var dataToServer = JSON.stringify({ html: content }); 
... 
var dataFromServer = JSON.parse(dataToServer); 
var content = dataFromServer.html; 
+0

它不工作yar!这就是我发布的问题。请正确地问题。 –

+0

stringify上的字符串是完全合法的。如果你知道你总是只处理字符串,可能没有太大的意义,但是它没有任何错误*:'JSON.parse(JSON.stringify('foo'))===' foo''。 –

+0

@rameshbabu,你会得到什么错误?您正在使用的浏览器是否支持'JSON.stringify'方法? –