Javascript объектов против массивов против JSON - программирование
Подтвердить что ты не робот

Javascript объектов против массивов против JSON

Несмотря на то, что я много не умею рисовать и вытягивать волосы, я не могу, чтобы жизнь меня определяла разницу между json, объектами и массивами (в javascript). Ниже показано, как я использую двумерные контейнеры данных (боюсь использовать слова "массив", "объект" или "json" здесь). Скажите, пожалуйста, что это за два примера?

//first example:
[
    {"record_id":1,"name":"Frank"},
    {"record_id":2,"name":"Sally"}
]

//second example:
{
"countries": 
    [
    {"id":1,"name":"Canada"},
    {"id":2,"name":"Mexico"}
    ],
"states":
    [
    "id":1,"name":"Maine"},
    {"id":2,"name":"Alaska"}
    ]
}
4b9b3361

Ответ 1

JSON - это представление структуры данных, это не объект или массив.

[1,2,3]

- массив.

{"foo":"bar"}

- объект.

В вашем примере

[
  {"record_id":1,"name":"Frank"},
  {"record_id":2,"name":"Sally"}
]

Является массивом объектов.

{
  "countries": 
    [
      {"id":1,"name":"Canada"},
      {"id":2,"name":"Mexico"}
    ],
  "states":
    [
      {"id":1,"name":"Maine"},
      {"id":2,"name":"Alaska"}
    ]
}

Является объектом, содержащим другие массивы и объекты внутри него.

Ответ 2

JSON - JavaScript Object Notation. Это просто способ записи типов данных JavaScript. Это не тип данных in-and-of-yourself.

Ниже приведены некоторые примеры типов данных JavaScript и буквальная запись их создания.

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

В вашем примере вы используете списки объектов и объекты объектов.

Это список из 3 пустых объектов.

[{}, {}, {}]

Это список из трех простых записей:

var mylist = [
    {name: 'John', age: 24},
    {name: 'Bill', age: 42},
    {name: 'Jill', age: 18},
    ]

Доступ к нему можно получить следующим образом:

mylist[1].name
>>> 'Bill'

mylist[2].age
>>> 18

JavaScript имеет несколько типов данных:

Номер

1
100
-2000
123.45

Строка

"Hi John"
"Message:\nGo Forth"

Boolean

true
false

Массив

[1,2,3]
[]
["a", "b", 123]
["a", "b", 123, [3,4,5]]

Объект

{}
{a: 10}
{mylist: [1,2,3], yourlist: [4,5,6]}
{myself: {name: 'me', age: 10}, yourself: {name: 'you', age: 20}}

Ответ 3

Вы используете { фигурные скобки } для объявления литерала объекта.

Вы используете квадратные скобки [ ] для объявления литерала массива.

Объекты представляют собой коллекции пар значений имени ключа.

Вот пример массива строк:

var a = [ "one", "two", "three" ];

Вот пример простого объекта, который представляет человека:

var personObject = {
    name: 'Joe',
    age: 25,
    hometown: 'New York'        
};

Ответ 4

JSON - это формат обмена текстовыми данными. Как указывает его имя ( "Обозначение объекта JavaScript" ), оно происходит от JS; что JSON фактически является синтаксически действующим JavaScript. Другими словами, вы можете вставить строку JSON непосредственно в свой JS-код.

Массивы - это специальные объекты. Они могут быть построены с помощью [].

Объекты могут быть построены с помощью {}.

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

Ответ 5

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