Javascript 在JSON中处理html代码

Javascript 在JSON中处理html代码,javascript,ajax,json,Javascript,Ajax,Json,我正在编写的代码将使用AJAX请求从服务器获取一些HTML代码进行嵌入,但我似乎无法获得正确的JSON格式。谁能告诉我我做错了什么 {"response": [ {"code": "<div id=\”sponsors\” class=\”infoBox\” > <div class=\”title\”>THANK YOU 2011 SPONSORS!</div> <div class=\”section\”> <div class=

我正在编写的代码将使用AJAX请求从服务器获取一些HTML代码进行嵌入,但我似乎无法获得正确的JSON格式。谁能告诉我我做错了什么

{"response": 
 [
  {"code": "<div id=\”sponsors\” class=\”infoBox\” > <div class=\”title\”>THANK YOU 2011 SPONSORS!</div> <div class=\”section\”> <div class=\”party\”><a href=\”http://www.ChickRussell.com\”>Chick Russell Communications</a></div> <div class=\”cityState\”>Pasadena, California</div> <div class=\”description\”> Chick Russell Communications is a story-driven creative development company, not a design-driven company. It's one of our main distinguishing features. It doesn't matter how great it looks if it doesn't create the desired effect. <a href=\”/vendors/info/17280\”>more...</a> </div> <div class=\”web\”><a href=\”http://www.ChickRussell.com\”>www.ChickRussell.com</a></div> </div>  </div>"
  }
 ]
}

是不同的字符。您需要的是stright引号,而不是卷曲的引号。(如果看不到差异,请告诉浏览器放大……不要使用自动转换为卷曲引号的编辑器(例如许多字处理器),请使用适当的文本编辑器(我喜欢ActiveState Komodo))


旧答案(在修订问题中的JSON之前):

第一件你可能做错的事,就是试图手工构建JSON,而不是使用库

第二个错误是HTML编码(严重)引号。要在JSON字符串中转义
,请将其表示为
\”

第三件事(但可能只是您给出了一个糟糕的示例)是费心为单个对象使用数组

当我尝试在它上运行JSON.parse()时,我得到一个语法错误


尽管存在问题,但您所拥有的是,因此不应该发生。您似乎已经减少了测试用例,以至于您所遇到的问题不会出现在其中。

是不同的字符。你需要的是短引号,而不是短引号。(如果看不到差异,请告诉浏览器放大…不要使用自动转换为卷曲引号的编辑器(例如,许多文字处理器),请使用适当的文本编辑器(我喜欢ActiveState Komodo))


旧答案(在修订问题中的JSON之前):

第一件你可能做错的事情,就是试图手工构建JSON。改用图书馆

你做错的第二件事是HTML编码(很糟糕)你的引号。要在JSON字符串中转义
,请将其表示为
\”

第三件事(但可能只是您给出了一个糟糕的示例)是费心为单个对象使用数组

当我尝试在它上运行JSON.parse()时,我得到一个语法错误

尽管它有问题,但你所拥有的是,所以这不应该发生。您似乎已经减少了测试用例,以至于您遇到的问题没有出现在其中。

这似乎对我有用:

然而,我确实避开了单引号

var str = '{"response":[{"code": "<div id=\”sponsors\” class=\”infoBox\” > <div class=\”title\”>THANK YOU 2011 SPONSORS!</div> <div class=\”section\”> <div class=\”party\”><a href=\”http://www.ChickRussell.com\”>Chick Russell Communications</a></div> <div class=\”cityState\”>Pasadena, California</div> <div class=\”description\”> Chick Russell Communications is a story-driven creative development company, not a design-driven company. It\'s one of our main distinguishing features. It doesn\'t matter how great it looks if it doesn\'t create the desired effect. <a href=\”/vendors/info/17280\”>more...</a> </div> <div class=\”web\”><a href=\”http://www.ChickRussell.com\”>www.ChickRussell.com</a></div> </div>  </div>"} ]}';

var obj = JSON.decode(str);
alert(obj["response"][0]["code"]);
var str='{“response”:[{“code”:“感谢2011年赞助商!加利福尼亚州帕萨迪纳Chick Russell Communications是一家以故事为导向的创意开发公司,而不是一家以设计为导向的公司。这是我们的主要特色之一。如果不能创造预期的效果,它看起来有多棒并不重要。”}]};
var obj=JSON.decode(str);
警报(obj[“响应”][0][“代码”]);
它似乎适合我:

然而,我确实避开了单引号

var str = '{"response":[{"code": "<div id=\”sponsors\” class=\”infoBox\” > <div class=\”title\”>THANK YOU 2011 SPONSORS!</div> <div class=\”section\”> <div class=\”party\”><a href=\”http://www.ChickRussell.com\”>Chick Russell Communications</a></div> <div class=\”cityState\”>Pasadena, California</div> <div class=\”description\”> Chick Russell Communications is a story-driven creative development company, not a design-driven company. It\'s one of our main distinguishing features. It doesn\'t matter how great it looks if it doesn\'t create the desired effect. <a href=\”/vendors/info/17280\”>more...</a> </div> <div class=\”web\”><a href=\”http://www.ChickRussell.com\”>www.ChickRussell.com</a></div> </div>  </div>"} ]}';

var obj = JSON.decode(str);
alert(obj["response"][0]["code"]);
var str='{“response”:[{“code”:“感谢2011年赞助商!加利福尼亚州帕萨迪纳Chick Russell Communications是一家以故事为导向的创意开发公司,而不是一家以设计为导向的公司。这是我们的主要特色之一。如果不能创造预期的效果,它看起来有多棒并不重要。”}]};
var obj=JSON.decode(str);
警报(obj[“响应”][0][“代码”]);

是双引号。您使用了“(Unicode:U+8221)而不是“(Unicode:U+34)。尽管它们看起来非常相似,但它们是两个不同的字符

以下代码有效:

{
"response": [
    {
        "code": "<div id=\"sponsors\" class=\"infoBox\" > <div class=\"title\">THANK YOU 2011 SPONSORS!</div> <div class=\"section\"> <div class=\"party\"><a href=\"http://www.ChickRussell.com\">Chick Russell Communications</a></div> <div class=\"cityState\">Pasadena, California</div> <div class=\"description\"> Chick Russell Communications is a story-driven creative development company, not a design-driven company. It's one of our main distinguishing features. It doesn't matter how great it looks if it doesn't create the desired effect. <a href=\"/vendors/info/17280\">more...</a> </div> <div class=\"web\"><a href=\"http://www.ChickRussell.com\">www.ChickRussell.com</a></div> </div>  </div>"
    }
]
}
{
“答复”:[
{
“代码”:“感谢2011年赞助商!加利福尼亚州帕萨迪纳市的奇克·拉塞尔通信公司是一家故事驱动的创意开发公司,而不是设计驱动的公司。这是我们的主要特色之一。如果不能产生预期的效果,它看起来有多棒并不重要。”
}
]
}

您可以随时使用-这是一个很棒的工具来检查JSON代码。

这是双引号。您使用了“(Unicode:U+8221)而不是“(Unicode:U+34)。虽然他们看起来很相似,但他们是两个不同的角色

以下代码有效:

{
"response": [
    {
        "code": "<div id=\"sponsors\" class=\"infoBox\" > <div class=\"title\">THANK YOU 2011 SPONSORS!</div> <div class=\"section\"> <div class=\"party\"><a href=\"http://www.ChickRussell.com\">Chick Russell Communications</a></div> <div class=\"cityState\">Pasadena, California</div> <div class=\"description\"> Chick Russell Communications is a story-driven creative development company, not a design-driven company. It's one of our main distinguishing features. It doesn't matter how great it looks if it doesn't create the desired effect. <a href=\"/vendors/info/17280\">more...</a> </div> <div class=\"web\"><a href=\"http://www.ChickRussell.com\">www.ChickRussell.com</a></div> </div>  </div>"
    }
]
}
{
“答复”:[
{
“代码”:“感谢2011年赞助商!加利福尼亚州帕萨迪纳市的奇克·拉塞尔通信公司是一家故事驱动的创意开发公司,而不是设计驱动的公司。这是我们的主要特色之一。如果不能产生预期的效果,它看起来有多棒并不重要。”
}
]
}

您可以随时使用检查JSON代码-这是一个很棒的工具。

对我来说,这看起来像是有效的JSON。发布相关代码。在我看来,这似乎是有效的json。发布相关代码。我刚刚添加了JavaScript代码并修复了编码。有什么不对劲吗?针对新JSONI的更新答案刚刚添加了我的JavaScript代码并修复了编码。有什么不对劲吗?更新了对新JSONpost的响应,在chrome控制台的网络选项卡上发布ajax响应数据。此外,JSON.decode并没有得到很好的支持。您应该使用eval、json2或jquery.post在chrome控制台的网络选项卡中发布ajax响应数据。此外,JSON.decode也没有得到很好的支持。您应该使用eval、json2或jquery。