使用JSON数组与JSON对象之间有什么区别?

这个问题已经在这里有了答案:

  • JSONObject和JSONArray之间的区别 6个答案

使用JSON数组有什么区别和优点:

{
   thing:[
     { },
     { }
   ]
}

与JSON对象:

{
   thing:{
     { },
     { }
   }
}
antonpug asked 2020-08-02T01:32:30Z
6个解决方案
30 votes

听起来不算聪明,但是...

keyvalue之间的区别是

使用keyvalue设置对象,例如...

person.age = 15;

如果key值是一个变量,则可以像访问...

var key = "age";
alert(person[key]);

数组使用integer [1]索引并获取一个值。

player[1].score += 1000;

[1]是的,我知道...在Javascript中,整数索引实际上已在后台转换为字符串。 不用管 当想到JSON时,尤其要考虑采用整数值的数组。

Jeremy J Starcher answered 2020-08-02T01:33:08Z
6 votes

对象-键和值,数组-整数。 什么时候使用这个或那个?

我认为数组和对象分别是“是/一个”和“有一个”。让我们以“水果”为例。

水果阵列中的每个项目都是一种水果。

array fruit : [orange:[], mango:{}, banana:{}]

。 数组可以包含对象,字符串,数字,数组,但只能处理对象和数组。

array fruit : [orange:[], mango:{}, banana:{}]

。 您可以看到orange也是数组。 这意味着任何变成橙色的项都是橙色的类型,例如:bitter_orange,橘子,sweet_orange。

对于水果对象,其中的任何项目都是水果的属性。 因此水果有一个

object fruit :{seed:{}, endocarp:{},flesh:{}}

这也意味着种子对象中的任何内容都应该是种子的属性,例如:颜色,

megyewodi answered 2020-08-02T01:33:55Z
5 votes

JSON数组代表对象的集合。 在JS中,有一堆收集函数,例如slicepoppush。对象具有更多原始数据。

Daniel A. White answered 2020-08-02T01:34:15Z
5 votes

您显示的第二种形式实际上不是有效的JSON,因为“事物”对象中的每个对象都需要某种排序或属性名称来访问它。

为了回答您的问题,不同之处在于,在第一种情况下,您将使用诸如obj.thing[0]obj.thing[1]之类的数组访问来访问“事物”中的对象。在第二种情况下,如果您具有适当的属性声明,则将像obj.thing.property

通常在JSON数组中用于存储相似项的分组,而对象用于对单个项包含不同属性的分组。

Mike Brant answered 2020-08-02T01:34:44Z
1 votes

JSON主要是一种允许将javascript对象序列化为字符串的语言。 因此,在反序列化JSON字符串后,您应该获得一个javascript对象结构。 如果您的json反序列化为一个对象,该对象将100个称为object1的对象存储到object100,那么这将非常不便。大多数反序列化程序都希望您具有已知对象和已知对象数组,以便它们可以将字符串转换为您使用的语言的实际对象结构。这也是面向对象设计理念会回答您的问题。

norbitheeviljester answered 2020-08-02T01:35:05Z
1 votes

可以使用map转换JSON对象:

function kryptonite(key)
   {
   var replacement = {};
   for(var __ in this)
     {
     if(__ in alias)
       replacement[__] = this[__]
     }

   return replacement;
   }

var alias = {"Clark":"","phone":""};
var contact = {
               "Clark":"Kent",
               "Kal El":"Superman",
               "phone":"555-7777"
              }

contact.toJSON = kryptonite;

var foo = JSON.stringify(contact)

可以使用map转换JSON数组:

 var contact = {
               "Clark":"Kent",
               "Kal El":"Superman",
               "phone":"555-7777",
               "home":[{"present":"Metropolis"},{"past":"Krypton"},{"future":"Phantom Zone"}]

              }

 var filter = {"past":"","future":""}

 function junction(value, index)
   {
   for (var __ in filter) if(value[__]) return value[__]
   } 

var island = contact.home.map(junction);
Paul Sweatte answered 2020-08-02T01:35:29Z
translate from https://stackoverflow.com:/questions/12288820/what-are-the-differences-between-using-json-arrays-vs-json-objects