gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 00:24:23 25 4
gpt4 key购买 nike

我正在尝试检查从查询返回的值。此结果为 JSON 格式。我的代码一直有效,直到我的条件语句。
在调试时,我发现我的条件语句总是失败,因为我尝试从 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
}
]}

当我调试时,我看到以下内容:

JSON Values

但是,解析值显示为:

Parsed values

非常感谢任何帮助。谢谢,

最佳答案

您收到的是对象数组而不是对象的对象,因此您应该首先使用索引然后使用属性来访问它们。假设 JSON 响应的格式始终相同,这是有效的 JSfiddle链接和下面是受此启发的示例代码 How to get index of object by its property in javascript帖子answer .

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");

关于json - 无法从 NodeJS 中的 JSON 响应获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43363370/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com