【发布时间】:2012-06-24 05:41:35
【问题描述】:
我正在使用 Node.js(与 Express.js)将 JSON 数据对象从服务器传递到客户端视图。
当我将 JSON 对象直接渲染到视图时,我得到了页面上显示的 JSON 对象,如预期的那样(这个 WORKS):
pageprovider.findAllTag( function(error, pages){
res.send(pages);
})
我的输出看起来像这样(更大,许多嵌套的 obj)
{"green":{"title":"green","pagesContaining": ""}}
当我尝试像这样将它传递给我的 Jade View 时:
pageprovider.findAllTag( function(error, tagsJSONObj){
//res.send(pages);
pageprovider.findAll( function(error, pages){
res.render('search_tags.jade', { locals: {
title: 'Search by Tags',
'pages': pages,
tagsJSON: JSON.stringify(tagsJSONObj) //pass the tags data as a JSON obj
}
});
}) //pageprovider.findAll
}) //pageprovider.findAllTag
问题
当我将“tagsJSON”传递给视图时,输出包括 html 实体:
var obj = jQuery.parseJSON( "{"name": 'value'}");
JQuery 抛出一个错误,因为它不喜欢 '"'。我怎样才能让 Node 给我正确的报价,或者让 jQuery 接受这种格式?
有什么想法吗?
【问题讨论】:
-
您是否正在查看浏览器中的输出
{"green":{"title":"green","pagesContaining": ""}}?如果您是,那么它已经为您进行了 HTML 编码。可能是因为pageprovider.findAllTag对作为tagsJSONObj参数传回的内容进行了HTML 编码。显示pageprovider.findAllTag的代码 -
search_tags.jade长什么样子?
标签: jquery json node.js express pug