2017-11-17 14 views
-1

次のJSONオブジェクトが返されました。すべての「タイトル」値にアクセスしたいと思います。私はすべての "ページ"の新しいオブジェクトを得ることができましたが、 "タイトル"は作成できませんでした。私は正しいこと以外すべてを試しました!ここでの「類似の」質問は、配列の直接アクセスの質問です。これは入れ子配列を含んでいるようです。助けてください!ありがとう。javacriptを使用してJSONオブジェクト内のデータにアクセスする

{ 
    "batchcomplete": "", 
    "continue": { 
     "gsroffset": 15, 
     "continue": "gsroffset||" 
    }, 
    "query": { 
     "pages": { 
      "22989": { 
       "pageid": 22989, 
       "ns": 0, 
       "title": "Paris", 
       "index": 1 
      }, 
      "59134": { 
       "pageid": 59134, 
       "ns": 0, 
       "title": "Paris Commune", 
       "index": 13 
      }, 
      "61371": { 
       "pageid": 61371, 
       "ns": 0, 
       "title": "Paris (disambiguation)", 
       "index": 2 
      }, 
      "64129": { 
       "pageid": 64129, 
       "ns": 0, 
       "title": "Catacombs of Paris", 
       "index": 11 
      }, 
      "76286": { 
       "pageid": 76286, 
       "ns": 0, 
       "title": "Disneyland Paris", 
       "index": 15 
      }, 
      "89106": { 
       "pageid": 89106, 
       "ns": 0, 
       "title": "Paris–Brest–Paris", 
       "index": 8 
      }, 
      "357488": { 
       "pageid": 357488, 
       "ns": 0, 
       "title": "Paris Saint-Germain F.C.", 
       "index": 10 
      }, 
      "868936": { 
       "pageid": 868936, 
       "ns": 0, 
       "title": "Paris Gun", 
       "index": 14 
      }, 
      "2397134": { 
       "pageid": 2397134, 
       "ns": 0, 
       "title": "Paris (Paris Hilton album)", 
       "index": 6 
      }, 
      "7618874": { 
       "pageid": 7618874, 
       "ns": 0, 
       "title": "Paris syndrome", 
       "index": 9 
      }, 
      "11217925": { 
       "pageid": 11217925, 
       "ns": 0, 
       "title": "Paris Hilton", 
       "index": 7 
      }, 
      "23528038": { 
       "pageid": 23528038, 
       "ns": 0, 
       "title": "Paris Jackson (actress)", 
       "index": 5 
      }, 
      "30242372": { 
       "pageid": 30242372, 
       "ns": 0, 
       "title": "Paris Agreement", 
       "index": 4 
      }, 
      "45259235": { 
       "pageid": 45259235, 
       "ns": 0, 
       "title": "Paris Laxmi", 
       "index": 12 
      }, 
      "55340805": { 
       "pageid": 55340805, 
       "ns": 0, 
       "title": "Paris Paris", 
       "index": 3 
      } 
     } 
    } 
} 

詳細を追加したいと思っていますが、他に何が追加できるのかわかりません。

+0

これが重複する可能性の答えは 'オブジェクトにアクセスし、それのプロパティにアクセスする方法の例には、' VAR OBJ = JSON.parse()を使用する方法を示します。 [** javascript **を使用して配列のJSONエンコードデータにアクセスする方法(https://stackoverflow.com/questions/21040794/how-to-access-json-encoded-data-of-an-array-using- javascript) – Nope

+1

'pages'を取得するためのコードを投稿しますので、' title'を得るためにそれを微調整するのに役立ちます。 – yuriy636

答えて

2

これを試してください:あなたは反復処理するような

const data = //your json 
const pages = data.query.pages 
const titles = Object.keys(pages).map(key => pages[key].title) 

ストア変数の「ページ」からの値は、配列として「ページ」内のすべてのキーを取得するためにObject.keysを使用して、マップ演算子を使用してこれらのキーとそれぞれについて、このエントリの属性 'title'を返します。

0

あなたはlodash /アンダースコアを使用したい場合は、このようなものは動作します:

const dataPages = data["query"]["pages"]; 
let titles = []; 
_.each(dataPages, (dataPage) => titles.push(dataPage["title"])) 

これは、あなたのタイトルの配列を取得する必要があります!

0

これは、Object.keysを使用してJSONのページを列挙します。

"use strict" 
const DATA = //your Map 
const pages = DATA.query.pages; 
const keys = Object.keys(pages); // returns an array of the ID numbers that are properties in each page 
let titles = [keys.length]; // initialize an output array 

for(let i=0; i < keys.length; i++){ 
    titles[i] = pages[keys[i]].title; 
}; 
関連する問題