Javascript 解析对象的JSON数组:未定义属性

Javascript 解析对象的JSON数组:未定义属性,javascript,json,parse-platform,Javascript,Json,Parse Platform,因此,与我之前的问题类似(我不确定是提出新问题还是编辑旧问题),我成功地使用下面的代码解析了bodyJSON响应 但是,当尝试对事件\u日历\u日期执行相同操作时,我发现:失败,错误为:TypeError:无法读取未定义的的属性“und”。我会假设,要到达数组中的下一个对象,这两个对象的方法都是相同的,但情况似乎并非如此 来自服务器的JSON响应: [ { "revision_uid":"1", "body":{ "und":[

因此,与我之前的问题类似(我不确定是提出新问题还是编辑旧问题),我成功地使用下面的代码解析了
body
JSON响应

但是,当尝试对
事件\u日历\u日期
执行相同操作时,我发现:
失败,错误为:TypeError:无法读取未定义的
的属性“und”。我会假设,要到达数组中的下一个对象,这两个对象的方法都是相同的,但情况似乎并非如此

来自服务器的JSON响应:

[

    {
        "revision_uid":"1",
        "body":{
            "und":[
                {
                    "value":"Blah Blah.",
                    "summary":"",
                    "format":null,
                    "safe_value":"Blah Blah.",
                    "safe_summary":""
                }
            ]
        },
        "event_calendar_date":{
            "und":[
                {
                    "value":"2015-07-20 14:00:00",
                    "value2":"2015-07-20 20:00:00",
                    "timezone":"America/New_York",
                    "timezone_db":"America/New_York",
                    "date_type":"datetime"
                }
            ]
        }
    }

]
我的代码:

Parse.Cloud.httpRequest({
    method: "GET",
    url: 'http://www.scolago.com/001/articles/views/articles',
    success: function(httpResponse) {
        var data = JSON.parse(httpResponse.text);
        var articles = new Array();
        for (var i = 0; i < data.length; i++) {
            var Articles = Parse.Object.extend("Articles"),
                article = new Articles(),
                content = data[i];

            article.set("body", content.body.und[0].value);
            article.set("vid", content.vid);
            article.set("title", content.title);

            article.set("events", content.event_calendar_date.und[0].value);

            articles.push(article);
        };


        // function save(articles);
        Parse.Object.saveAll(articles, {
            success: function(objs) {
                promise.resolve();
            },
            error: function(error) {
                console.log(error);
                promise.reject(error.message);
            }
        });

    },
    error: function(error) {
        console.log(error);
        promise.reject(error.message);
    }
});
Parse.Cloud.httpRequest({
方法:“获取”,
网址:'http://www.scolago.com/001/articles/views/articles',
成功:函数(httpResponse){
var data=JSON.parse(httpResponse.text);
var articles=新数组();
对于(变量i=0;i
恐怕您没有给我们所有的代码,或者您没有使用您在这个问题中发布的代码,因为它应该运行良好,正如您所看到的:

for(变量i=0;i
编辑和解决方案 正如我所料,您得到的JSON没有第二个和第三个对象的字段
event\u calendar\u date
。我帮你登记了

第一个对象具有正确的
event\u calendar\u date
字段,但下一个记录没有。看看JSON是如何格式化的-


您需要首先检查当前循环迭代中的记录中是否存在
内容.event\u calendar\u date
,或者将
event\u calendar\u date
添加到JSON响应中的所有记录中。

在var数据上执行console.log,这将在inspector中向您显示数据的结构,然后您可以看到它有什么。这将有助于您调试问题。如果您认为这会有所帮助,请参阅完整代码。但是,好了,我发布了所有相关的代码。我不相信我能够更改JSON响应,那么一个简单的if语句来检查
内容。event\u calendar\u date
是否适合此任务?谢谢你的帮助。检查。
for (var i = 0; i < data.length; i++) {
    var content = data[i];
    console.log(content.event_calendar_date.und[0].value);
};