web-dev-qa-db-ja.com

JSONObjectとJSONArrayの違い

Googleを少し見てみると、構文の観点からは違いを説明する link が見つかりました。

プログラミングシナリオで、一方が他方よりも優先されるのはいつですか?

88
Luke Taylor

AndroidでJSONデータを使用する場合、JSONArrayを使用して、配列括弧で始まるJSONを解析します。 JSONの配列は、関連するアイテムのコレクションを整理するために使用されます(JSONオブジェクトの場合もあります)。
例:[{"name":"item 1"},{"name": "item2} ]

一方、中括弧で始まるJSONを扱う場合は、JSONObjectを使用します。 JSONオブジェクトは通常、1つのアイテムに関連するキー/値のペアを含めるために使用されます。例:{"name": "item1", "description":"a JSON object"}

もちろん、JSON配列とオブジェクトは互いに入れ子にすることができます。この一般的な例の1つは、クエリに一致するアイテムの配列とともにいくつかのメタデータを含むJSONオブジェクトを返すAPIです。

{"startIndex": 0, "data": [{"name":"item 1"},{"name": "item2"} ]}
164
elevine

違いは(ハッシュ)マップとリストと同じです。

JSONObject:

  • 名前付きの値が含まれます(キー->値のペア、タプル、またはそれらを呼び出すもの)
    • {ID : 1}など
  • 要素の順序は重要ではありません
    • {id: 1, name: 'B'}のJSONObjectは{name: 'B', id: 1}と等しくなります。

JSONArray:

  • シリーズ値のみが含まれます
    • [1, 'value']など
  • 値の順序が重要です
    • [1,'value']の配列は['value',1]と同じではありません

JSON Object --> { "":""}

JSON Array --> [ , , , ]

{"employees":[
    {"firstName":"John", "lastName":"Doe"},
    {"firstName":"Anna", "lastName":"Smith"},
    {"firstName":"Peter", "lastName":"Jones"}
]}
91

プログラムで最もよく理解できます。

構文が{}thenの場合、これはJsonObjectです

構文が[]の場合、これはJsonArrayです

JSONObjectはJSONのようなオブジェクトであり、JSONArray内の要素として表すことができます。 JSONArrayには、1つ(または複数)のJSONObjectを含めることができます

これがあなたのお役に立てば幸いです!

22
Yogesh Rathi

私は常にオブジェクトを使用します。より簡単に拡張できますが、JSON配列はそうではありません。たとえば、元々json配列としていくつかのデータがあった場合、オブジェクトにデータをネストしない限り、ステータスヘッダーを追加する必要があります。唯一の欠点は、作成/解析の複雑さがわずかに増加することです。

代わりに

[datum0, datum1, datumN]

あなたが持っているだろう

{data: [datum0, datum1, datumN]}

その後、さらに追加できます...

{status: "foo", data: [datum0, datum1, datumN]}
6
Adam

より簡単に理解するために、JSONオブジェクトとJSON配列の違いを以下に示します。

表形式の違いへのリンク: https://i.stack.imgur.com/GIqI9.png

JSON配列

1. Arrays in JSON are used to organize a collection of related items
   (Which could be JSON objects)
2.  Array values must be of type string, number, object, array, boolean or null
3.  Syntax: 
           [ "Ford", "BMW", "Fiat" ]
4.  JSON arrays are surrounded by square brackets []. 
    **Tip to remember**  :  Here, order of element is important. That means you have 
    to go straight like the shape of the bracket i.e. straight lines. 
   (Note :It is just my logic to remember the shape of both.) 
5.  Order of elements is important. Example:  ["Ford","BMW","Fiat"] is not 
    equal to ["Fiat","BMW","Ford"]
6.  JSON can store nested Arrays that are passed as a value.

JSONオブジェクト

1.  JSON objects are written in key/value pairs.
2.  Keys must be strings, and values must be a valid JSON data type (string, number, 
    object, array, boolean or null).Keys and values are separated by a colon.
    Each key/value pair is separated by a comma.
3.  Syntax:
         { "name":"Somya", "age":25, "car":null }
4.  JSON objects are surrounded by curly braces {} 
    Tip to remember : Here, order of element is not important. That means you can go 
    the way you like. Therefore the shape of the braces i.e. wavy. 
    (Note : It is just my logic to remember the shape of both.)
5.  Order of elements is not important. 
    Example:  { rollno: 1, firstname: 'Somya'} 
                   is equal to 
             { firstname: 'Somya', rollno: 1}
6.  JSON can store nested objects in JSON format in addition to nested arrays.
3
SAM

以前の回答はすべて、あなたの質問に対する洞察に満ちています。このSOスレッドを見つけるわずか1分前に、私もこの混乱を抱えていました。いくつかの答えを読んだ後、ここに私が得るものがあります:JSONObjectはJSONArrayの配列の要素として表現できるJSONのようなオブジェクトです。多く)JSONObject。

0
Serge Kishiko