由Json发送HTML

时间:2012-09-28 11:15:04

标签: c# asp.net json

我对Jquery Ajax调用做出响应并且运行良好:

var jSonTestResultReport =@"{ ""html"" : ""I am text!"" }";

Javascript收到它并接收文本并将其显示在Div中,我可以看到"I am Text"

但是当我尝试这样做时:

var jSonTestResultReport =@"{ ""html"" : ""<li style=""color:green;"">I am text</li>"" }";

我得到错误

  

意外令牌c。

如何通过html发送Json

3 个答案:

答案 0 :(得分:4)

var jSonTestResultReport =@"{ ""html"" : ""<li style=""color:green;"">I am text</li>"" }";

将创建一个json字符串

{ "html" : "<li style="color:green;">I am text</li>" }

无效。 unexpected token c.来自color的第一个字母。

使用real json parser而不是手动形成json。

var json = JsonConvert.SerializeObject(new { html=@"<li style=""color:green;"">I am text</li>" });

PS:var jSonTestResultReport =@"{ ""html"" : "I am text!" }";无法编译。

答案 1 :(得分:1)

<li ... >中转义“\”之类的引号,否则JSON会因为文本分隔符而死亡

var jSonTestResultReport =
     @"{ ""html"" : ""<li style=\""color:green;\"">I am text</li>"" }";

答案 2 :(得分:0)

为什么不使用jQuery.parseJSON方法,这比使用大量双引号的方式更清晰可读

e.g。

var obj = jQuery.parseJSON('{"html": "<listyle='color: green;'>Iamtext</li>"}');

另外为了加快速度,我建议你使用JsonLint验证器来验证你的json对象