所以,类似于我之前的问题here(我不确定是要提出新问题还是编辑旧问题),我设法使用所看到的代码成功解析body
JSON响应下方。
但是,当尝试对event_calendar_date
执行相同操作时,我得到了这个:Failed with: TypeError: Cannot read property 'und' of undefined
。我会假设要到达数组中的下一个对象,两种方法都是相同的,但情况似乎并非如此。
来自服务器的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);
}
});
答案 0 :(得分:2)
我担心你没有给我们所有的代码,或者你没有使用你在这个问题中发布的代码,因为它应该运行正常,你可以看到in this demo:
for (var i = 0; i < data.length; i++) {
var content = data[i];
console.log(content.event_calendar_date.und[0].value);
};
正如我所料,你得到的JSON没有第二个和第三个对象的字段event_calendar_date
。我检查了您的full code on GitHub.
第一个对象具有正确的event_calendar_date
字段,但下一个记录没有。了解您如何格式化JSON - http://www.jsoneditoronline.org/?id=b46878adcffe92f53f689978873a3474。
您需要先检查当前循环迭代中记录中是否存在content.event_calendar_date
,还是将event_calendar_date
添加到JSON响应中的所有记录中。