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"}
]
}
Ответы
Ответ 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