2016-07-08 7 views
0

さらに処理するためにJSON配列をスクリプトに送ります。 JSON配列にはオブジェクトの束が含まれ、各オブジェクトにはさらにオブジェクトの配列が含まれています。私が知る必要があるのは、それらのネストされたオブジェクト内の値にアクセスする方法です。だから、例えば、スクリプトは以下を受信した場合:JSON配列内のオブジェクトへのアドレス指定

petlist = [ 
    {"cats":[ 
      {"catName":"Felix","catType":"British short haired"} 
     ] 
    }, 
    {"dogs":[ 
      {"dogName":"Fido","dogType":"Labrador"} 
     ] 
    }, 
    {"fish":[ 
      {"fishName":"Bob","fishType":"Goldfish"} 
     ] 
    }, 
    {"birds":[ 
      {"birdName":"Polly","birdType":"Parrot"} 
     ] 
    } 
] 

どのように私はその後、A)dogName、b)のbirdType、たとえば、対処、またはc)全体の猫は、オブジェクトのでしょうか?

また、私はここで私の用語で正しいですか?私が理解しているように、角括弧内のものは配列ですが、中括弧内のものはオブジェクトです。

編集:私はJavaScriptでJSONを構築していると私はそれから(「各」ループ内で)ジェイドテンプレート内の要素にアクセスする必要が

おかげ

+0

json.parse(petlist)JavaScriptでarray.By配列にJSONに変換しますがジェイドとの作業例を見つけることができますどのようなデータにもアクセスすることができます。 –

+0

[こちら(お問い合わせください)](http://stackoverflow.com/help/how-to-ask)と[this(mcve)](http://stackoverflow.com/help/mcv e)尋ねる前に、あなたが地域社会からより多くのより良い答えを得るのを助けるようにしてください。あなたがこれを使ってみようとしている言語を記述してください(JAvascriptはJavaやC +とは違った扱いをします) – Bonatti

+0

は、これをやろうとしている場所の詳細を追加するために編集しました。 – Drum

答えて

2

私は少しので、あなたのJSONを変更私はそれがうまく動作しないと思う。基本的には、dogName、catNameなどの代わりに名前のようなキーを持つべきだと思った理由は、オブジェクトをループするだけです。

はあなたには、JavaScriptにこのJSFiddle

HTML

<div id="jadeoutput"></div> 
<pre id="jadeinput" style="display:none"> 
- console.log(petlist) 
h1 List 
    ul.list 
    - for(var i in petlist) 
     li= "Item - "+ petlist[i].name 
     - for(var j in petlist[i].pets) 
     li= "Pet - " + petlist[i].pets[j].name + " " + petlist[i].pets[j].type 
</pre> 

$(function() { 
    var json = { 
    "petlist" : [ 
     { 
      "name" : "cats", 
      "pets": 
      [ 
       { "name":"Felix","type":"British short haired"} 
      ] 
     }, 
     { 
      "name" : "dogs", 
      "pets": 
      [ 
       {"name":"Fido","type":"Labrador"} 
      ] 
     }, 
     { 
      "name" : "fish", 
      "pets": 
      [ 
       {"name":"Bob","type":"Goldfish"} 
      ] 
     }, 
     { 
      "name" : "birds", 
      "pets" : 
      [ 
       {"name":"Polly","type":"Parrot"} 
      ] 
     } 
    ]}; 

    $("#jadeoutput").html(jade.compile($("#jadeinput").html())(json)); 
}); 
+0

JSONストリームで** {中括弧} **が表示されている場合は、*オブジェクトに対応します* ** [角括弧] **が表示されている場合は、*配列です* JSONのデコードを成功させると、その内部構造がJavaScript変数と完全に一致するJavaScript変数を使用します。 ( "Yes、JSON * is * JavaScript ...") –

+0

サメを追加したい場合、完全なコードを動的にループするのではなく、追加するだけです。私はちょうど名前を使うことができることを知っています。 – KRONWALLED

関連する問題