2017-06-11 10 views
-5

JavaScriptを使用してJSONのすべての名前属性を取得するにはどうすればよいですか?json属性を取得できません

{ 
    "layerGroup": { 
    "name": "tasmania", 
    "mode": "SINGLE", 
    "title": "Tasmania", 
    "abstractTxt": "Tasmania Australia from Digital Chart of the World.", 
    "publishables": { 
     "published": [{ 
     "@type": "layer", 
     "name": "tasmania_state_boundaries", 
     "href": "http:\/\/localhost:8080\/geoserver\/rest\/layers\/tasmania_state_boundaries.json" 
     }, { 
     "@type": "layer", 
     "name": "tasmania_water_bodies", 
     "href": "http:\/\/localhost:8080\/geoserver\/rest\/layers\/tasmania_water_bodies.json" 
     }, { 
     "@type": "layer", 
     "name": "tasmania_roads", 
     "href": "http:\/\/localhost:8080\/geoserver\/rest\/layers\/tasmania_roads.json" 
     }, { 
     "@type": "layer", 
     "name": "tasmania_cities", 
     "href": "http:\/\/localhost:8080\/geoserver\/rest\/layers\/tasmania_cities.json" 
     }] 
    }, 
    "styles": { 
     "style": ["null", "null", "null", "null"] 
    }, 
    "bounds": { 
     "minx": 143.83482400000003, 
     "maxx": 148.47914100000003, 
     "miny": -43.648056, 
     "maxy": -39.573891, 
     "crs": "EPSG:4326" 
    }, 
    "metadata": { 
     "entry": { 
     "@key": "rawStyleList", 
     "$": "" 
     } 
    } 
    } 
} 
+0

これまでに試したことをお伝えください。 –

+0

アラート(data.layerGroup.name;)はタスマニアのみを出力します。すべての名前をアトリビュートにしたい –

+0

Object.keys –

答えて

1

これはあなたが望むのですか? layerGroup.publishables.publishedをループして名前を取得する必要があります。

var data = {"layerGroup":{"name":"tasmania","mode":"SINGLE","title":"Tasmania","abstractTxt":"Tasmania Australia from Digital Chart of the World.","publishables":{"published":[{"@type":"layer","name":"tasmania_state_boundaries","href":"http://localhost:8080/geoserver/rest/layers/tasmania_state_boundaries.json"},{"@type":"layer","name":"tasmania_water_bodies","href":"http://localhost:8080/geoserver/rest/layers/tasmania_water_bodies.json"},{"@type":"layer","name":"tasmania_roads","href":"http://localhost:8080/geoserver/rest/layers/tasmania_roads.json"},{"@type":"layer","name":"tasmania_cities","href":"http://localhost:8080/geoserver/rest/layers/tasmania_cities.json"}]},"styles":{"style":["null","null","null","null"]},"bounds":{"minx":143.83482400000003,"maxx":148.47914100000003,"miny":-43.648056,"maxy":-39.573891,"crs":"EPSG:4326"},"metadata":{"entry":{"@key":"rawStyleList","$":""}}}}; 
 

 
for (var i =0; i<data.layerGroup.publishables.published.length; i++){ 
 
console.log(data.layerGroup.publishables.published[i].name); 
 
}

0

あなたはpublished内のすべての項目についてのforeachループを記述する必要があります。 の代わりにalert(data.layerGroup.name); 公開オブジェクトとその '名前'属性にアクセスする必要があります。 現在、 'layerGroup'の 'name'属性にアクセスしています

関連する問題