2017-12-19 9 views
-3

私はJavaScriptでアプリに働いている、と私は、このJSONオブジェクトを持っている(これは実際のJSONオブジェクトの簡単な例である)深く入れ子になったjsonオブジェクトの価値を得るには?

{ 
    "data": [ 
    "user": { 
     "pictures"{ 
     "sizes"[ 
      0: { 
      "link": "http://www" 
      }, 
      1: { 
      "link": "http://" 
      } 
     ] 
     } 
    } 
    ] 
} 

そして、私はリンクの値を取得したいので、私が試しましたdata.user.pictures.sizes[0].link、エラーを返しました。適切な価値を得るには?

編集:データオブジェクトの周りをループするマップ関数を使用しているので、値をHTMLページに表示できます。それは他のほとんどのアイテム、写真のサイズを除いて、私はサイズの配列の2番目の項目の値を取得することはできません。したがって、この

data[0].user.pictures.sizes[0].0.link 
+0

あなたはどのようなツールやプログラミング言語を使用しない

希望を2配列を持っていることを見ることができますか?それはJavascriptですか? – lospejos

+0

もっとコードを共有できますか?どのような言語を使用していますか? – iep

+0

写真の後にセミコロンはありません。元のコードでは大丈夫ですか? –

答えて

3

は、それは「データ」は、配列やサイズは、プロパティ0と1のオブジェクトを含む配列を含んで含まれていることを示し、それは以下のようにする必要があります:すべての

js.data.user.pictures.sizes[0].link 
+0

私はすでにマップ関数を使ってオブジェクトの周りを回っていますが、picture.sizesでは2番目の配列アイテムの値だけを使いたいだけです。 – Ndx

0

あなたのJSONが間違っているかのデータから

1

まずあなたがにコロンを持っている必要があります:

var js = { 
    "data": { 
     "user":{ 
     "pictures":{ 
      "sizes":[ 
       { 
        "link":"http://www" 
       }, 
       { 
        "link":"http://" 
       } 
      ] 
     } 
     } 
    } 
} 

は値を取得するにはと "sizes" :)

第2に、それはあなたの構造によって異なります。例えば

あなたは彼らがあなたの例に表示される配列を使用する必要がある場合:

var a = { 
    "data": [ 
     { 
      "user": { 
       "pictures": { 
        "sizes": [ 
         { 
          0: { 
           "link": "http://www" 
          } 
         }, 
         { 
          1: { 
           "link": "http://" 
          } 
         } 
        ] 
       } 
      } 
     } 
    ] 
} 

console.log(a.data[0].user.pictures.sizes[0][0].link); 

またはあなたはそれで配列せずにJSONを必要とする:

var b = { 
    "data": { 
     "user": { 
      "pictures": { 
       "sizes": { 
        0: { 
         "link": "http://www" 
        }, 
        1: { 
         "link": "http://" 
        } 
       } 
      } 
     } 
    } 
} 

console.log(b.data.user.pictures.sizes[0].link); 

かそれらを混在させることもできます:

var c = { 
    "data": { 
     "user": { 
      "pictures": { 
       "sizes": [ 
        { 
         "link": "http://www" 
        }, 
        { 
         "link": "http://" 
        } 
       ] 
      } 
     } 
    } 
} 

console.log(c.data.user.pictures.sizes[0].link); 

"sizes"の微妙な差異がbcaのダブル配列に注目してください。これは、キーとしてのインデックスを持つjsonが配列と同じであるためです。この例を確認してください。

var example = [ 
    { 
     0: "example00", 
     1: "example01", 
     2: "example02" 
    }, 
    { 
     0: "example10", 
     1: "example11", 
     2: "example12" 
    }, 
] 

console.log(example[0][1]); // == example01 

あなたがexampleアレイ内に役立ちます:)

+0

助けました。ありがとう!実際の問題はオブジェクトのパスではなく、むしろエラーをレンダリングし、残りのデータを表示できない値nullのリンクを持つように思えます。 – Ndx

関連する問題