2017-03-01 12 views
0

内部の複数のアレイでJSON配列から特定の値を取得し、私は、次のようJASON形式で出力値を持っている:私はこのウェブサイトに多くても1つは、この で助けることができるを見ることができるように私はここに求めている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 
     } 

は、あくまでも一例名= Blade11、Blade4のための文字列 のリストまたは配列内の名前のオブジェクトと出力パラメータを取得するため、この出力を解析するために、ある....

できれば私たちは "members"の下にあるすべての名前を持つJsonの出力を見て、それぞれが別の値の配列であり、nすでにJSON形式を持っているのでエイムズ

おかげ

+2

var names = json.members.map(function(obj){return obj.name}); – juvian

答えて

0

は、各配列項目を反復処理するためにあなたのJSONオブジェクトのメンバキーのアレイ方式を使用することができます。

var names = []; 
    object_name.members.forEach((arrItem) => { 
    names.push(arrItem.name); 
    } 

または

namesArray = object_name.members.map((arrItem) => { 
    return arrItem.name; 
    } 
+0

[JSON](http://json.org/)はまだ文字列であり、オブジェクトではありません。 –

0

あなたは配列のすべての要素を反復するためArray#mapを使用し、nameプロパティのみを返すことができます。

あなたがJSON文字列を持っている場合は、このJSONが文字列の場合

object = JSON.parse(jsonString); 

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

のように最初にあなたが解析する必要があり、あなたは、オブジェクトを取得するために、事前にそれを解析する必要がありますそれ

var json = JSON.parse('here is your JSON string'); 

オブジェクトへのアクセスのようなプロパティへのアクセス

var names = json.members.map(function(member) { 
    return member.name; 
});