首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在javascript中从内部有多个数组的JSON数组中获取特定值

在javascript中从内部有多个数组的JSON数组中获取特定值
EN

Stack Overflow用户
提问于 2017-03-02 01:47:39
回答 3查看 570关注 0票数 0

我在这里问,因为我可以看到这个网站,在这方面我有一个JASON格式的输出值,如下所示:

代码语言:javascript
复制
{
  "total": 16,
  "members": [{
        "id": 4,
        "name": "Blade11",
        "descriptors": {
          "os": "Windows 2012 / WS2012 R2"
        },
        "FCPaths": [{
          "wwn": "50060B0000C27208",
          "hostSpeed": 0
        }, {
          "wwn": "50060B0000C2720A",
          "hostSpeed": 0
        }],
        "iSCSIPaths": [],
        "persona": 11,
        "links": [{
          "href": "https://3par:8080/api/v1/hostpersonas?query=\"wsapiAssignedId EQ 11\"",
          "rel": "personaInfo"
        }],
        "initiatorChapEnabled": false,
        "targetChapEnabled": false
      }, {
        "id": 6,
        "name": "Blade4",
        "descriptors": {
          "os": "VMware (ESXi)"
        },
        "FCPaths": [{
          "wwn": "50060B0000C27216",
          "hostSpeed": 0
        }, {
          "wwn": "50060B0000C27214",
          "hostSpeed": 0
        }],
        "iSCSIPaths": [],
        "persona": 8,
        "links": [{
          "href": "https://3par:8080/api/v1/hostpersonas?query=\"wsapiAssignedId EQ 8\"",
          "rel": "personaInfo"
        }],
        "initiatorChapEnabled": false,
        "targetChapEnabled": false
      }

我想要的是,解析此输出,以便仅在字符串列表或字符串数组中检索名称对象的输出参数,例如Names = Blade11,Blade4,...

如果您可以在Json输出中看到,我们将所有名称都放在"members“下,那么每个名称都是另一个值数组,我只想检索名称

谢谢

EN

回答 3

Stack Overflow用户

发布于 2017-03-02 01:51:59

因为已经有了JSON格式,所以可以在JSON对象的成员键上使用数组方法来迭代每个数组项。

代码语言:javascript
复制
   var names = []; 
   object_name.members.forEach((arrItem) => { 
     names.push(arrItem.name);
   }

代码语言:javascript
复制
  namesArray = object_name.members.map((arrItem) => {
    return arrItem.name;
  }
票数 0
EN

Stack Overflow用户

发布于 2017-03-02 01:53:38

您可以使用Array#map来迭代数组的所有元素,并且只返回name属性。

如果您有一个JSON字符串,则需要提前对其进行解析以获取对象,例如

代码语言:javascript
复制
object = JSON.parse(jsonString);

代码语言:javascript
复制
var jsonString = '{"total":16,"members":[{"id":4,"name":"Blade11","descriptors":{"os":"Windows 2012 / WS2012 R2"},"FCPaths":[{"wwn":"50060B0000C27208","hostSpeed":0},{"wwn":"50060B0000C2720A","hostSpeed":0}],"iSCSIPaths":[],"persona":11,"links":[{"href":"https://3par:8080/api/v1/hostpersonas?query=\\"wsapiAssignedId EQ 11\\"","rel":"personaInfo"}],"initiatorChapEnabled":false,"targetChapEnabled":false},{"id":6,"name":"Blade4","descriptors":{"os":"VMware (ESXi)"},"FCPaths":[{"wwn":"50060B0000C27216","hostSpeed":0},{"wwn":"50060B0000C27214","hostSpeed":0}],"iSCSIPaths":[],"persona":8,"links":[{"href":"https://3par:8080/api/v1/hostpersonas?query=\\"wsapiAssignedId EQ 8\\"","rel":"personaInfo"}],"initiatorChapEnabled":false,"targetChapEnabled":false}]}',
    object = JSON.parse(jsonString),
    array = object.members.map(function (a) { return a.name; });

console.log(array);

票数 0
EN

Stack Overflow用户

发布于 2017-03-02 01:54:48

如果此JSON是字符串,则必须先对其进行解析

代码语言:javascript
复制
var json = JSON.parse('here is your JSON string');

然后,您就可以像使用对象一样访问它的属性

代码语言:javascript
复制
var names = json.members.map(function(member) {
    return member.name;
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42538582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档