gpt4 book ai didi

javascript - 如何访问值为未知整数的 JS 对象属性?

转载 作者:行者123 更新时间:2023-11-30 15:26:40 25 4
gpt4 key购买 nike

此维基百科 API 调用返回的 JSON 响应是一系列嵌套对象。要沿着对象属性链向下移动并访问感兴趣的文本,我必须首先访问一个值为随机数的属性,具体取决于我按标题查询的维基百科页面。

标题为 “San%20Francisco”(页面 ID = 49728)的页面示例:

对象属性链:

responseJSON.wiki[0].query.pages[<<page id>>].extract

API 调用示例:https://en.wikipedia.org/w/api.php/?origin=*&format=json&action=query&prop=extracts&exintro=&explaintext=&titles=San%20Francisco

有什么方法可以识别值为随机整数的属性?链中只有一个子页的值为整数。我想不出其他解决方案,也不知道任何有效的 JSON 解析方法。

我对 AJAX 请求没有经验,我正在使用 jQuery 以这种方式进行 ajax 调用。我想提一下这一点,以防我做一些幼稚的事情:

var getWiki = function (obj) {
return $.ajax({
url: "http://en.wikipedia.org/w/api.php" +
"?origin=*" + "&format=json" +
"&action=query" + "&prop=extracts" +
"&exintro=" + "&explaintext=" + "&titles=" +
obj.position,
method: 'GET'
});
};

最佳答案

好吧,如果 pages 对象上始终只有一个属性,那么您可以尝试以下任一方法:

if (typeof Object.values !== 'function') {
Object.values = obj => Object.keys(obj).map(key => obj[key]);
}

const responseJSON = {
"batchcomplete": "",
"query": {
"pages": {
"49728": {
"pageid": 49728,
"ns": 0,
"title": "San Francisco",
"extract": "Some text"
}
}
}
}

const pages = responseJSON.query.pages;

const extractedWithKeys = pages[Object.keys(pages)[0]];
const extractedObjValues = Object.values(pages)[0];

console.log(extractedWithKeys, extractedObjValues)

关于javascript - 如何访问值为未知整数的 JS 对象属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42851511/

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