我正在尝试循环从后端接收的对象。收到后,我正在迭代一次容器,我收到错误消息而不是获取对象值。
JSON链接示例:https://dl.dropboxusercontent.com/u/10268257/TCSPage.json
这是我的功能:
jsonConvertor = function (argument) {
return {
init : function (json) {
var that = this;
this.receivedJson = $.parseJSON(json); //i am parseing still not working
console.log(this.receivedJson.DocPageDetails)
// _.each(that.receivedJson.DocPageDetails, function (i, item) {
// console.log(i, item);
// });
}
}
};
$.get("https://dl.dropboxusercontent.com/u/10268257/TCSPage.json")
.error(function() {
console.log('no page found error');
})
.done(function(json){
var html = jsonConvertor().init(json);
})
答案 0 :(得分:2)
您不能在JSON中使用//
条评论,因此您必须先清理它。在这种情况下,似乎足以删除后面(立即或在某些空格之后)逗号字符的所有//-something-\n
序列。但即使在那之后你应该解决obj.d.DocPageDetails
,而不是obj.DocPageDetails
- 这很容易检查你是否记录了收到的对象。所以,这是一种可能的方法来做你想做的事情:
var uncommentedJSON = json.replace(/,\s*\/\/[^\n]*\n/g, ',\n');
var obj = $.parseJSON(uncommentedJSON);
$.each(obj.d.DocPageDetails, function (i, item) {
console.log(i, item);
});
Demo。我已将_.each
替换为$.each
,因为您的小提琴中没有包含underscore
,但这不应该有所作为。