JSON означает нотацию объектов JavaScript. JSON — это текстовый формат, представляющий структурированные данные, что делает его популярным выбором для обмена данными между различными системами, особенно в веб-разработке.
Это позволяет нам общаться между сервером и клиентом. Он используется для хранения и обмена данными.
Он действует как альтернатива XML и основан на литералах объектов JavaScript.
Преимущества:
- Легко читается — разработчикам легко писать и понимать.
- Легкий вес — минимальный синтаксис и простота, что делает его эффективным для передачи данных по сетям.
- Независимый от языка — может использоваться на любом языке программирования для генерации данных JSON, что делает его пригодным для межплатформенного обмена данными.
Типы данных:
JSON предоставляет несколько основных типов данных для представления значений.
- Строка: последовательность символов, заключенная в двойные кавычки.
- Число: JSON поддерживает как целые числа, так и числа с плавающей запятой.
- Boolean: представляет истинное или ложное значение.
- Массив: упорядоченный список значений, заключенный в квадратные скобки []. Элементы массива могут иметь любой поддерживаемый тип данных, включая другие массивы или объекты.
- Объект: неупорядоченная коллекция пар ключ-значение, заключенная в фигурные скобки {}. Ключи должны представлять собой строки, заключенные в двойные кавычки, а значения могут иметь любой поддерживаемый тип данных, включая другие объекты или массивы.
- Null: представляет собой пустое или несуществующее значение.
Например,
{
"name":"Alice",
"age":25,
"isStudent":true,
"favColours":["red","blue","black"],
"address": {
"street":"123 Main St",
"city":"cityname",
"zipcode":null
}
}
Синтаксис:
Синтаксис JSON состоит из набора правил:
- Написано внутри фигурных скобок
- Данные организованы в пары ключ-значение.
- Имена ключей должны быть заключены в двойные кавычки.
- Значения могут относиться к любым поддерживаемым типам данных.
- Квадратные скобки для хранения массива и фигурные скобки для хранения объектов.
{
"name": "John",
"age": 30,
"isStudent": false
}
JSON против XML
JSON — альтернатива XML. И JSON, и XML используются для хранения и обмена данными. XML — это язык разметки, используемый для структурирования данных и часто используемый в конфигурациях, документах и обмене данными.
Давайте посмотрим разницу между JSON и XML.
- JSON — это текстовый формат, а XML — это язык разметки.
- JSON легче, а XML тяжелее из-за сложного синтаксиса.
- JSON поддерживает несколько основных типов данных, таких как строка, число, логическое значение, массив, объект и значение null, тогда как XML поддерживает только строковый тип данных.
4. Здесь получить данные легко, а в XML — сложно.
<person>
<name>Alice</name>
<age>25</age>
<isStudent>true</isStudent>
<address>
<street>123 Main St</street>
<city>Anytown</city>
</address>
</person>
В этом примере XML:
Такие теги, как «человек», «имя», «возраст» и «isStudent», представляют элементы. Каждый элемент имеет открывающий и закрывающий тег.
XML более многословен с явными тегами, но менее эффективен для обмена данными из-за своей многословности.
Литерал объекта JavaScript
Мы уже узнали, что JSON основан на литерале объекта JavaScript. Он используется для определения объектов в вашем коде JavaScript и подходит для программного использования.
Синтаксис JSON очень похож на литерал объекта JavaScript. Но в литерале объекта ключи можно определять без кавычек.
const person = {
name: "Alice",
age: 25,
isStudent: true,
address: {
street: "123 Main St",
city: "Anytown"
}
displayName:function() {
return this.name;
}
};
В этом примере мы можем определить функцию в литерале объекта JavaScript. Но мы не можем напрямую определить функцию в JSON.
Выбор между JSON, JavaScript Object Literal и XML зависит от вашего варианта использования, потребностей в обмене данными и контекста, в котором вы работаете.
JSON и объектный литерал JavaScript часто отдаются предпочтение в современной веб-разработке из-за их простоты и совместимости с JavaScript, тогда как XML может быть более подходящим в контекстах, требующих сложных структур документов или старых систем.
синтаксический анализ() и строковая обработка()
JavaScript предоставляет встроенные функции для преобразования JSON в литерал объекта JavaScript и наоборот.
Метод JSON.parse() используется для преобразования данных JSON в литерал объекта JavaScript.
const jsonString = '{"name":"John","age":30}';
const person = JSON.parse(jsonString);
// person is now { name: 'John', age: 30 }
Метод JSON.stringify() используется для объекта JavaScript, являющегося литералом данных JSON.
const person = {name: "John", age: 30};
const jsonString = JSON.stringify(person);
// jsonString is now '{"name":"John","age":30}'
Чтобы получить данные из объекта JSON:
Существует два разных способа доступа к данным из объекта JSON.
- Точечное обозначение
- Квадратное обозначение
Точка (.):
const person = {name: "Alice", age: 25,
address: {
city: "Anytown",
state: "CA"
}
};
console.log(person.name); // Outputs: "Alice"
console.log(person.address.city); // Outputs: "Anytown"
В этом примере мы используем точечную запись для доступа к свойству «имя» объекта «человек» и свойству «город» внутри вложенного объекта «адрес».
Квадратное обозначение([]):
Это позволяет нам получать доступ к данным, используя динамические имена свойств. Его можно использовать для решения проблем, связанных с точечной записью.
const person = {
"1": "Alice",
"last name": "Smith",
"age": 25
};
console.log(person["1"]); // Outputs: "Alice"
console.log(person["last name"]); // Outputs: "Smith"
const propName = "age";
console.log(person[propName]); // Outputs: 25
Если ключ представлен числом или в ключе есть пробел, мы не можем получить доступ к этому ключу с помощью точечной записи. Чтобы решить эту проблему, мы можем использовать обозначение [].
Мы также можем использовать переменные для динамического указания имени свойства, как показано в примере propName.
Спасибо, что уделили время прочтению этой статьи.