在Javascript中的不同JSON键中获取多个值
你好 这是我在API中的示例响应,我对结果有点困惑。items数组中有多个对象,我想从API获得一个特定的响应。我的问题是如何在JSON中获得多个键中的多个值在Javascript中的不同JSON键中获取多个值,javascript,json,ecmascript-6,Javascript,Json,Ecmascript 6,你好 这是我在API中的示例响应,我对结果有点困惑。items数组中有多个对象,我想从API获得一个特定的响应。我的问题是如何在JSON中获得多个键中的多个值 items: [ { "venue": { "id": "4e82750f8b8185a7c93d3632", "name": "Puregold Meycauyan",
items: [ {
"venue": {
"id": "4e82750f8b8185a7c93d3632",
"name": "Puregold Meycauyan",
"contact": {},
"location": {
"crossStreet": "Meycauayan",
"lat": 14.72670029378359,
"lng": 120.96040348293954,
"labeledLatLngs": [
{
"label": "display",
"lat": 14.72670029378359,
"lng": 120.96040348293954
}
],
"cc": "PH",
"city": "Bulacan",
"state": "Bulacan",
"country": "Pilipinas",
"formattedAddress": [
"Meycauayan",
"Bulacan",
"Bulacan",
"Pilipinas"
]
},
"tips": [
{
"id": "4f656942e4b08b4770548244",
"createdAt": 1332046146,
"text": "This grocery opens early and the lines are never long.",
"type": "user",
"canonicalUrl": "https://foursquare.com/item/4f656942e4b08b4770548244",
}
];
}];
我只会得到vitune.name、vitune.formatted地址和tips.text
我的预期结果是:
Name: Puregold Meycauyan,
formattedAddress: "Meycauayan, Bulacan, Bulacan, Pilipinas",
Tips: This grocery opens early and the lines are never long.
您可以使用解构分配来获取数组或对象的特定元素,并将其分配给变量标识符
let items=[{“地点”:{“id”:“4e82750f8b8185a7c93d3632”,“姓名”:“Puregold Meycauyan”,“联系人”:{},“地点”:“十字路口”:“Meycauayan”,“lat”:14.72670029378359,“lng”:120.96040348293954,“标签”:[{“标签”:“展示”,“lat”:14.7267002938359,“lng”:120.96040348293954}”,“cc”:“PH”,“城市”:“布拉坎”,“州”“布拉坎”,“国家”和“比兰斯”,“格式化地址”:[“Meycauayan”、“Bulacan”、“Bulacan”、“Pilipinas”]},“提示”:[{“id”:“4f656942e4b08b4770548244”、“createdAt”:1332046146,“文本”:“这家杂货店开门早,排队从不长。”,“键入”:“用户”,“规范URL”:https://foursquare.com/item/4f656942e4b08b4770548244"}]}}];
让{name:_name,location:{formattedAddress},tips:[{text}]}=items[0];
log(_name,formattedAddress,text);
您需要确保json和数组中的嵌套对象都用大括号包装
var json={
“项目”:[{
“地点”:{
“id”:“4e82750f8b8185a7c93d3632”,
“名称”:“Puregold Meycauyan”,
“联系人”:{}
}
}]
}
console.log(json.items[0].venture.name);
获得预期输出的方法如下:
var json={
项目:[{
“地点”:{
“id”:“4e82750f8b8185a7c93d3632”,
“名称”:“Puregold Meycauyan”,
“联系人”:{
},
“地点”:{
“crossStreet”:“Meycauayan”,
“lat”:14.72670029378359,
“液化天然气”:120.96040348293954,
“标签标签”:[{
“标签”:“显示”,
“lat”:14.72670029378359,
“液化天然气”:120.96040348293954
}],
“cc”:“PH”,
“城市”:“布拉坎”,
“州”:“布拉坎”,
“国家”:“庇利庇纳斯”,
“格式化地址”:[“Meycauayan”,
“布拉坎”,
“布拉坎”,
“菲律宾群岛”]
},
“提示”:[{
“id”:“4f656942e4b08b4770548244”,
“createdAt”:1332046146,
“文本”:“这家杂货店开张早,排队的人从不长。”,
“类型”:“用户”,
“canonicalUrl”:https://foursquare.com/item/4f656942e4b08b4770548244",
}]
}
}]
};
console.log(“名称:+json.items[0].venture.Name+”,\n”+
“formattedAddress:\”“+json.items[0]。地点。位置。formattedAddress.toString()+”\,\n“+
“提示:”+json.items[0]。地点。提示[0]。文本)
请澄清您的问题并显示预期的输出。如果您向API发送返回有限响应的请求,则只能从API获得“有限”响应。您将结果分配给类似var json
的对象,对吗?只需通过对象符号(
或[“键”)访问相关键即可
)。您的预期输出:在提示中可能有多个条目,您将如何处理?我的预期输出是:“字符串还是普通对象?”@RannieOllit“对不起“没有意义,与调查无关。您是否阅读了发布在上的链接?先生,如果有多个场馆,请提示如何?请参阅我的最新帖子。@RannieOllit“如果有多个场地”在原始问题中未提及,请参阅。给定一个对象数组的预期结果是什么?在迭代对象数组时,可以使用相同的模式,但不能将相同的变量标识符分配给多个不同的值。你可以返回一个特定值的数组。与上面相同,先生,但是它打印多个值let res=items.map({vention:{name:name,location:{formattedAddress},tips:[{text:tips}]}})=>({name,formattedAddress,tips}))
应该会产生一个特定值的数组。对不起,先生,这是我预期的输出:name:Puregold Meycauyan,格式地址:“Meycauayan,Bulacan,Bulacan,Pilipinas”,提示:这家杂货店开张早,排队的人从不长。姓名:Puregold Meycauyan,格式地址:“Meycauayan,Bulacan,Bulacan,Pilipinas”,提示:这家杂货店开张早,排队的人从不长。纯文本的,先生