2016-12-25 11 views
2

ここには、jsonファイルがあり、その中に配列があり、その内部に別の配列があります。配列内の配列

これはjsonファイルの外観です。

{ 
    "keys": [ 
     { 
      "game": "Counter-Strike: Global Offensive", 
      "price": "5", 
      "listofkeys": ["5555w-55w12-2d131","231a1-213x1-31313"] 
     }, 
     { 
      "game": "Crusader Kings II", 
      "price": "20", 
      "listofkeys": ["5555w-55w12-2d131","231a1-213x1-31313"] 
     } 
    ] 
} 

私の質問は可能ですか?私はこれを使用して、後でこのような何かを行うことが可能です:

(filename.json).keys.listofkeys.length 

それが「キーのリスト」にありますどのように多くのアレイをチェックするために、ここでそのよう.LENGTH行うことは可能ですが? ??? 私は自分自身で試してみましたが、うまく動作していないようです。私はこれを確認する必要がありますが、続ける前に。誰かがとても親切で答えることができたら:)

ありがとう!

+0

それはあなたがまだインデックス値を使用する必要が配列であるため。これは、ブラウザ自体で簡単に確認できます。あなたのページを作成し、jsonファイルをインクルードし、開発ツールを使ってコードにブレークポイントを設定するか、コンソールを使ってコードをテストします。 – jeff

答えて

1

正確ではありません。
あなたの例では、keysのキーは配列で、listofkeysという属性/キーを持たないことを意味します。あなたは何ができるか

keys[0].listofkeys.lengthをチェックしている - これはあなたのJSONオブジェクトのkeysキーにし、その配列の最初の配列を取る - それは listofkeysキーを取ると、それはlengthですチェックします。

+0

問題は、このエラーが表示されます。 –

+0

未定義:6 "listofkeys":["5555w-55w12-2d131"、 "231a1-213x1-31313"] ^ –

+0

構文エラーがあります。あなたのjsonファイルに 'price ':" 5 "'の後にコンマがありません。これは 'price':" 5 "、' – Dekel

1

はいAJAXを使用して、外部JSONファイルをロードし、次にJavaScriptのオブジェクト変数にそのデータをロードするJSON.parse方法を使用することが可能である:

data.json

{ 
    "keys": [ 
     { 
      "game": "Counter-Strike: Global Offensive", 
      "price": "5", 
      "listofkeys": ["5555w-55w12-2d131","231a1-213x1-31313"] 
     }, 
     { 
      "game": "Crusader Kings II", 
      "price": "20", 
      "listofkeys": ["5555w-55w12-2d131","231a1-213x1-31313"] 
     } 
    ] 
} 

JavascriptでJSONファイルをロードする

function loadJSON(callback) { 

    var xobj = new XMLHttpRequest(); 
     xobj.overrideMimeType("application/json"); 
    xobj.open('GET', 'data.json', true); 
    xobj.onreadystatechange = function() { 
      if (xobj.readyState == 4 && xobj.status == "200") { 
      // Required use of an anonymous callback as .open will NOT return a value but simply returns undefined in asynchronous mode 
      callback(xobj.responseText); 
      } 
    }; 
    xobj.send(null); 
} 

function check_json_data(json_data) { 

    var obj = JSON.parse(json_data); 

    console.log(obj); 
    console.log("Keys length:", obj.keys.length); 
    console.log("List of keys 1 length:", obj.keys[0].listofkeys.length); 
    console.log("List of keys 2 length:", obj.keys[1].listofkeys.length); 
} 

loadJSON(check_json_data); 

OUTPUT

enter image description here

ここに私の例のコンソール出力を参照してください:http://zikro.gr/dbg/html/json-load/