Подтвердить что ты не робот

В чем разница между использованием массивов JSON и объектов JSON?

В чем разница и преимущества использования массивов JSON:

{
   thing:[
     { },
     { }
   ]
}

по сравнению с объектами JSON:

{
   thing:{
     { },
     { }
   }
}
4b9b3361

Ответ 1

Не звучать как умная задница, но хорошо...

Разница между array и object.

Объекты настраиваются с помощью key и value как...

person.age = 15;

Если значение key является переменной, тогда можно получить доступ к нему, как...

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

Массивы используют индекс integer [1] и принимают значение.

player[1].score += 1000;

[1] Да, я знаю... в Javascript индекс integer действительно превращается в строку за кулисами. Игнорируйте это. Подумайте о массивах, принимающих целое значение ОСОБЕННО, когда вы думаете о JSON.

Ответ 2

Arrays in JSON используются для организации набора связанных элементов (которые могут быть объектами JSON).

Например: [{ "name" : "item 1" }, { "name" : "item2}]

JSONObject используется при работе с JSON, который начинается с фигурных скобок. Объект JSON обычно используется для хранения пар ключ/значение, связанных с одним элементом.

Например: { "name" : "firstname", "dateOfBirth": "65475645" }

Ответ 3

A JSONArray - упорядоченная последовательность значений. Его внешняя текстовая форма представляет собой строку, заключенную в квадратные скобки с запятыми, разделяющими значения.

A JSONObject - неупорядоченный набор пар имя/значение. Его внешняя форма - это строка, завернутая в фигурные скобки с двоеточиями между именами и значениями и запятыми между значениями и именами.

Ответ 4

Массивы JSON представляют собой совокупность объектов. В JS существует множество функций сбора, таких как slice, pop, push. Объекты имеют только более сырые данные.

Ответ 5

Объект - ключ и значение, массив - целое число. Когда вы используете то или это?

Я думаю о массивах и объектах как "есть a/an" и "имеет" соответственно. В качестве примера можно использовать "Фрукты".

Каждый элемент в массиве фруктов - это тип плода.

array fruit : [orange, mango, banana]

.  Массивы могут содержать объекты, строки, числа, массивы, но позволяют обрабатывать только объекты и массивы.

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

. Вы можете видеть, что оранжевый тоже массив. Это означает, что любой предмет, который идет внутри оранжевого, является оранжевым, скажем: bitter_orange, mandarin, sweet_orange.

для фруктового объекта, любой предмет в нем является атрибутом плода. таким образом, плод имеет

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

Это также означает, что что-либо внутри семенного объекта должно быть свойством семени, например: color,

Ответ 6

Вторая форма, которую вы показываете, на самом деле недействительна JSON, так как каждому объекту в объекте "вещь" потребуется какое-либо имя вида или свойства для доступа к ней.

Чтобы ответить на ваш вопрос, разница в том, что в первом случае вы должны получить доступ к объектам в "вещи", используя доступ к массиву, например, obj.thing[0] или obj.thing[1]. Во втором случае, если у вас есть правильные объявления свойств, вы получите доступ, например, obj.thing.property

Обычно в массиве JSON используются для хранения группировки одинаковых элементов, тогда как объект используется для группировки разных свойств для одного элемента.

Ответ 7

JSON - это прежде всего язык, который позволяет сериализовать объекты javascript в строки. Поэтому при десериализации строки JSON вы должны получить структуру объектов javascript. Если ваш json десериализуется в объект, который хранит 100 объектов, называемых object1 для object100, тогда это будет очень неудобно. Большинство десериализаторов ожидают, что у вас будут известные объекты и массивы известных объектов, чтобы они могли преобразовать строки в фактическую структуру объекта на используемом вами языке. Также возникает вопрос, что философия объектно-ориентированного проектирования ответит вам.

Ответ 8

Объект JSON можно преобразовать, используя toJSON:

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)

Массив JSON можно преобразовать, используя map:

 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);