2012-04-12 8 views
0

現時点では、[{"n":"bob"}, {"n":"jim"}, ..., {"n":"alex"}]という形式のJSON応答を返すAJAX駆動サイトがあります。基本的にjsonオブジェクトの配列。

しかし、私たちはそれをそういうものとして構成しようと考えています:[["bob"], ["jim"], ..., ["alex"]]。基本的に配列の配列。

明らかな違いは、プロパティを介してデータにアクセスする代わりに、想定されるインデックス位置(つまりarray [0] == name)を使用してデータにアクセスすることですが、それ以外に、欠点はそれぞれです。興味深い要因:クライアントのパフォーマンス(データ構造の構築と値の取得)、帯域幅(明らかに大規模なデータセットやインターネット接続の低速化、モバイルデバイスなど)、デザインパターン/ベストプラクティス、json配列vjsonオブジェクト - pros cons

+2

質問は十分正確ではなく、答えは「明白」の味があります。 – Vincent

+2

'['bob'、 'jim'、 'alex']'はどうでしょうか? – neoascetic

+0

* "想定されるインデックスの位置" * - これは通常、悪い考えである理由について独自の質問に答えました。 – deceze

答えて

1
  • オブジェクト・イン・アレイの形式を使用している場合、あなたは項目ごとにより多くのデータをロードするだけではなく、nすることができます。

    [{ 
         'name' : 'John', 
         //more data about john 
    },{ 
         'name' : 'Joe', 
         //more data about joe 
    }] 
    //myArray[0].name = John 
    
  • アレイを使用する場合、データリターンは同じ種類のものとみなされます。

    ['John','Joe'...] //all names 
    //myArray[0] = John 
    

それはすべてあなたがデータを解析する方法に帰着します。このような


構造化データ:

[["bob"], ["jim"], ..., ["alex"]] 

は完全に間違っています。なぜ名前を配列に、名前の配列で入れているのですか?第二のレベルは何ですか?

+0

私はちょうど混乱を避けるための簡単な例を与えることを試みていた。もっと複雑な例が好きな人は、リストの各項目に単なる名前以上の情報が含まれているかもしれません。 –

+0

@paulsmith次に配列内のオブジェクト(私の答えの最初のサンプル)は、より安全な解決策になります。 – Joseph

0

配列の手法では、意味のあるインデックス名を使用できないため、JSONオブジェクトを使用します。また、ほとんどのプログラミング言語にJSON出力を作成するための優れたライブラリがあることがわかります。

大規模なデータセットを扱っているのでなければ、アレイのアプローチはパフォーマンス上のメリットがありません。

+0

可読性の観点からは、JSONオブジェクトのアプローチが優れています。しかし、あなたは配列よりも実際にオブジェクトよりも速いと言っていますか?もしそうなら、何の面で?アクセス?解析ですか?記憶? –

+0

http://stackoverflow.com/questions/8423493/what-is-the-performance-of-objects-arrays-in-javascript-specifically-for-googl –

関連する問題