Javascript 从JSON数组搜索结果查询中提取动态键值
我使用WikipediaAPI搜索Wiki文章。当我单击submit按钮时,会得到一个JSON数组:Javascript 从JSON数组搜索结果查询中提取动态键值,javascript,jquery,arrays,json,Javascript,Jquery,Arrays,Json,我使用WikipediaAPI搜索Wiki文章。当我单击submit按钮时,会得到一个JSON数组: 0 {ns: 0, title: "Help", size: 3677, wordcount: 433, snippet: "<span class=\"searchmatch\">Help</span> is any form …mmand-line shells that invokes documentations and", …} 1 {ns: 0, title
0 {ns: 0, title: "Help", size: 3677, wordcount: 433, snippet: "<span class=\"searchmatch\">Help</span> is any form …mmand-line shells that invokes documentations and", …}
1 {ns: 0, title: "Online help", size: 7326, wordcount: 380, snippet: "(HTML), which includes HTML <span class=\"searchmat…earchmatch\">help</span> is also provided via live", …}
2 {ns: 0, title: "Help desk", size: 9491, wordcount: 1296, snippet: "A <span class=\"searchmatch\">help</span> desk is a …ated to a company's or institution's products and", …}
...
0{ns:0,标题:“Help”,大小:3677,字数:433,代码段:“Help是任何形式的……m调用文档的命令行shell,”,…}
1{ns:0,标题:“联机帮助”,大小:7326,字数:380,代码段:“(HTML),其中包括HTML帮助,也可通过live”,…}
2{ns:0,标题:“帮助台”,尺寸:9491,字数:1296,片段:“帮助台是……与公司或机构的产品相关联的,”,…}
...
我需要提取标题的值,并在结果列表的HTML中使用它,同时将其放入url中,以便用户可以单击结果并转到相应的页面。(网址:)
数组位于data.query.search中
由于结果是动态的,我可能需要某种for循环,它将遍历这个数组,不管有多少个结果。我已经尝试过这个for循环,但它不起作用
console.log(data.query.search); //shows array in console
data.query.search =""; //the location of JSON array
for (i = 0; i < data.query.search["results"].length; i++) {
data.query.search["results"][i]["title"];
console.log("results");
}
console.log(data.query.search)//在控制台中显示阵列
data.query.search=“”//JSON数组的位置
for(i=0;i
我怀疑我没有正确地瞄准数组元素、键和值。我很感激你的建议。干杯。您的代码有一些奇怪的东西。首先,您正在第二行“清除”
data.query.search
。其次,在循环中,您不需要将每个结果的标题分配给任何变量,只需打印“results”。第三,您说数组位于data.query.search
中,但您试图访问属性results
。您可以尝试以下操作:
var data={query:{search:[
{ns:0,标题:“帮助”,大小:3677,字数:433},
{ns:0,标题:“在线帮助”,大小:7326,字数:380},
{ns:0,标题:“帮助台”,大小:9491,字数:1296}
]}};
for(var i=0;i }
给你一个解决方案
var data={query:{search:[
{ns:0,标题:“帮助”,大小:3677,字数:433},
{ns:0,标题:“在线帮助”,大小:7326,字数:380},
{ns:0,标题:“帮助台”,大小:9491,字数:1296}
]}};
for(data.query.search中的变量i){
console.log(data.query.search[i].title);
}
var data={query:{search:[
{ns:0,标题:“帮助”,大小:3677,字数:433},
{ns:0,标题:“在线帮助”,大小:7326,字数:380},
{ns:0,标题:“帮助台”,大小:9491,字数:1296}
]}};
var titleArray=data.query.search.map(函数(arrObj){
返回arrObj.title;
})
控制台日志(titleArray)代码>
很有效,谢谢,我真的把代码搞乱了。我只使用for循环部分,因为数据已经“定义”了一个函数,它在获取JSON时触发。代替粘贴整个代码,解释它所做的。而不是粘贴整个代码,请考虑解释它所做的。当然,@ Mistalis…向前走会解决问题的。