无法使用骨干在json中读取undefined的属性

时间:2013-09-03 12:24:02

标签: backbone.js

我有一个像这样的json文件:

 "_id": {
                "$oid": "d8"
            },
"timestamp": {
                "$date": "2010-09-03T11:53:22Z"
            },
"name": {
                "$ref": "user",
                "$id": "73e"
            },

在骨干收藏中我有这个,我想从网址获取数据。

defaults : {
                id : null,
                name : null,
                timestamp : null

            },
parse : function(response){
                response.id = response._id.$oid;
                response.timestamp = response.timestamp.$date;
                response.name = response.name.$ref;

                return response;
            },

它会识别除ref之外的所有内容,并且会出现此错误 未捕获的TypeError:无法读取未定义的属性'$ ref'。为什么会那样?

1 个答案:

答案 0 :(得分:0)

你得到的JSON是你不希望得到的。在访问属性之前,您始终必须检查对象是否存在:

parse : function (response) {
    response._id && (response.id = response._id.$oid);
    response.timestamp && (response.timestamp = response.timestamp.$date);
    response.name && (response.name = response.name.$ref);

    return response;
}

请添加到您的问题控制台输出:console.log(response);