无法从NodeJS的JSON响应中获取值

我正在尝试检查从查询返回的值。 这个结果是JSON格式。 我的代码工作,直到我的条件声明。
在debugging时,我发现我的条件语句总是失败,因为我试图从JSON中检索的值和比较总是未定义的。

var promise = insertDataInMongo([body, token]); var newBody = JSON.parse(body); if (newBody.paging.facebookPost !== -1 || newBody.paging.youtube !== -1 || newBody.paging.twitter !== -1 || newBody.paging.facebook !== -1 || newBody.paging.reddit !== -1 || newBody.paging.youtubeComment !== -1 || newBody.paging.news !== -1) promise.then(getAthleteMedia([athlete, token, newBody.paging.facebook, newBody.paging.facebookPost, newBody.paging.reddit, newBody.paging.youtube, newBody.paging.youtubeComment, newBody.paging.twitter, newBody.paging.news])) 

得到返回的身体是这样的:

 { "paging": [ { "youtubeComment": -1 }, { "youtube": -1 }, { "twitter": -1 }, { "facebook": -1 }, { "reddit": -1 }, { "facebookPost": -1 }, { "news": -1 } ]} 

当我debugging时,我看到以下内容:

JSON值

但是,parsing值显示为:

parsing值

任何帮助深表感谢。 谢谢,

你正在接受的是一个对象数组而不是对象的对象,所以你应该首先访问索引,然后是属性。 假设JSON响应的格式总是相同的,这里是工作的JSFiddle链接,下面是从这个启发的示例代码如何获取对象的索引,通过它的属性在javascript post的答案 。

 var newBody = { "paging": [{ "youtubeComment": -1 }, { "youtube": -1 }, { "twitter": -1 }, { "facebook": -1 }, { "reddit": -1 }, { "facebookPost": -1 }, { "news": -1 }] }; function check(array, attr, value) { for (var i = 0; i < array.length; i += 1) { if (array[i][attr] === value) { return false; } } return true; } function get_value(array, attr) { for (var i = 0; i < array.length; i += 1) { if (array[i].hasOwnProperty(attr)) { return array[i][attr]; } } } if (check(newBody.paging, "facebook", -1) || check(newBody.paging, "youtubeComment", -1) || check(newBody.paging, "youtube", -1) || check(newBody.paging, "twitter", -1) || check(newBody.paging, "reddit", -1) || check(newBody.paging, "facebookPost", -1) || check(newBody.paging, "news", -1)) { // promise.then(getAthleteMedia([athlete, token, get_value(newBody.paging, "facebook"), ... get_value(newBody.paging, "news")])); // similarly just pass the function in your promise, hope it clears how to get the values as well console.log(get_value(newBody.paging, "facebook")); } else console.log("not in if");