JSONObject和JSONArray的区别

在对Google进行简要介绍之后,我发现这个链接描述了不同点,但是从语法的angular度来看。

在编程场景中,什么时候会比其他人更喜欢?

当您在Android中使用JSON数据时,您将使用JSONArray来parsing以数组括号开头的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"} ]} 

与(哈希)地图vs列表的区别是相同的。

的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"} ]} 

最好以编程方式了解。

当语法是{}那么这是JsonObject

当语法是[]那么这是JsonArray

希望这对你有帮助!

对象:一个对象是一组无名的名称/值对。 一个对象以{(左大括号)开始并以}(右大括号)结束。 每个名称后跟:(冒号),名称/值对由(逗号)分隔。

在这里输入图像说明

数组:数组是数值的有序集合。 一个数组以[(左括号)开头,结尾为](右括号)。 值由(逗号)分隔。

在这里输入图像说明

我总是使用对象,它更容易扩展,JSON数组不是。 例如,你最初有一些数据作为一个JSON数组,然后你需要添加一个状态头,你会有点卡住,除非你嵌套在一个对象的数据。 唯一的缺点是创build/parsing的复杂度略有增加。

所以,而不是

 [datum0, datum1, datumN] 

你会有的

 {data: [datum0, datum1, datumN]} 

那么以后你可以添加更多…

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