在Javascript中的不同JSON键中获取多个值

在Javascript中的不同JSON键中获取多个值,javascript,json,ecmascript-6,Javascript,Json,Ecmascript 6,你好 这是我在API中的示例响应,我对结果有点困惑。items数组中有多个对象,我想从API获得一个特定的响应。我的问题是如何在JSON中获得多个键中的多个值 items: [ { "venue": { "id": "4e82750f8b8185a7c93d3632", "name": "Puregold Meycauyan",

你好

这是我在API中的示例响应,我对结果有点困惑。items数组中有多个对象,我想从API获得一个特定的响应。我的问题是如何在JSON中获得多个键中的多个值

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”,提示:这家杂货店开张早,排队的人从不长。纯文本的,先生