JSONObject和JSONArray之间的差异

jgzswidk  于 2022-11-19  发布在  其他
关注(0)|答案(9)|浏览(148)

在Google上浏览了一下之后,我发现了这个link,它描述了不同之处,但从语法的Angular 来看。
在编程场景中,什么时候一个比另一个更受欢迎?

7xllpg7q

7xllpg7q1#

在Android中处理JSON数据时,您可以使用JSONArray解析以数组括号开头的JSON。JSON中的数组用于组织相关项的集合(可能是JSON对象)。
例如:[{"name":"item 1"},{"name": "item2"} ]
另一方面,在处理以大括号开头的JSON时,可以使用JSONObject。JSON对象通常用于包含与一个项相关的键/值对。例如:{"name": "item1", "description": "a JSON object"}
当然,JSON数组和对象可以嵌套在一起,一个常见的例子是一个API,它返回一个JSON对象,该对象包含一些元数据以及与查询匹配的项的数组:

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

sqserrrh2#

其区别与(散列)Map与列表相同。

JSON对象:

  • 包含已命名的值(键-〉值对、元组或任何您想要的名称)
  • 例如{ID : 1}
  • 元素的顺序并不重要
  • {id: 1, name: 'B'}的JSON对象等于{name: 'B', id: 1}
    JSON数组:
  • 仅包含序列值
  • 例如[1, 'value']
  • 值的顺序很重要
  • [1,'value']的数组与['value',1]不同

范例

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

JSON Array --> [ , , , ]

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

watbbzwu3#

最佳编程理解。
当语法为{}时,则为JsonObject
当语法为[]时,则为JsonArray
JSONObject是一个类似JSON的对象,可以表示为JSONArray中的元素。JSONArray可以包含一个(或多个)JSONObject
希望这对你有帮助!

xbp102n0

xbp102n04#

我总是使用对象,它更容易扩展,JSON数组则不是。例如,你最初有一些数据作为json数组,然后你需要在它上面添加一个状态头,你会有点卡住,除非你把数据嵌套在一个对象中。唯一的缺点是创建/解析的复杂性略有增加。
所以与其

[datum0, datum1, datumN]

你会有

{data: [datum0, datum1, datumN]}

然后您可以添加更多...

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

knpiaxh15#

下面是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.
cbwuti44

cbwuti446#

两者的使用取决于数据的结构。
简单地说,如果您计划为唯一标识符(如主键)给予优先级,则可以使用嵌套对象方法。
例如:

{
     "Employees" : {
           "001" : {
               "Name" : "Alan",
               "Children" : ["Walker", "Dua", "Lipa"]
                },
           "002" : {
               "Name" : "Ezio",
               "Children" : ["Kenvey", "Connor", "Edward"]
                }
      }

或者,如果要存储一组值而不需要唯一标识,请使用Array first方法。
例如:

{
        "Employees":[
               {
                   "Name" : "Alan",
                   "Children" : ["Walker", "Dua", "Lipa"]
               },
               {
                   "Name" : "Ezio",
                   "Children" : ["Kenvey", "Connor", "Edward"]
               }
          ]
       }

虽然您可以使用第二种方法和标识符,但在某些情况下,查询和理解它可能会比较困难或过于复杂。此外,根据数据库的不同,您可能必须应用合适的方法。例如:MongoDB/Firebase显示器

q9rjltbz

q9rjltbz7#

当JSON以{}开头时,它是一个对象JSON object;当它以[]开头时,它是一个数组JSON Array
JSON数组可以由许多对象组成,称为对象数组。

vh0rcniy

vh0rcniy8#

我知道,前面所有的答案都对你的问题很有见地。我也曾像你一样困惑过,就在一分钟前发现了这条线索。在阅读了一些答案后,我得到了以下结果:JSONObject是一种类似JSON的对象,可以表示为数组(JSONArray)中的元素。换句话说,JSONArray可以包含一个(或多个)JSONObject。

d5vmydt9

d5vmydt99#

JSON中的数组用于组织相关项的集合(可以是JSON对象)。例如:[{"name":"Name 1"},{"name": "Name 2} ]
另一方面,在处理以大括号开头的JSON时,可以使用JSONObject。
JSON对象通常用于包含与一个项相关的键/值对。例如:{"name": "Name", "description":"a JSON object"}
当然,JSON数组和对象可以嵌套在一起,一个常见的例子是一个API,它返回一个JSON对象,该对象包含一些元数据以及与查询匹配的项的数组:

{"startIndex": 0, "data": [{"name":"Name 1"},{"name": "Name 2"} ]}

相关问题