Bezdepbonusu7Программирование: статьи и ответы

JSON: руководство для начинающих

Архив Bezdepbonusu74 мин чтения

JSON означает нотацию объектов JavaScript. JSON - это текстовый формат, представляющий структурированные данные, что делает его популярным выбором для обмена данными между различными системами, особенно в веб-разработке.

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

Он действует как альтернатива XML и основан на литералах объектов JavaScript.

Преимущества:

  1. Легко читается - разработчикам легко писать и понимать.
  2. Легкий вес - минимальный синтаксис и простота, что делает его эффективным для передачи данных по сетям.
  3. Независимый от языка - может использоваться на любом языке программирования для генерации данных JSON, что делает его пригодным для межплатформенного обмена данными.

Типы данных

JSON предоставляет несколько основных типов данных для представления значений.

  1. Строка: последовательность символов, заключенная в двойные кавычки.
  2. Число: JSON поддерживает как целые числа, так и числа с плавающей запятой.
  3. Boolean: представляет истинное или ложное значение.
  4. Массив: упорядоченный список значений, заключенный в квадратные скобки []. Элементы массива могут иметь любой поддерживаемый тип данных, включая другие массивы или объекты.
  5. Объект: неупорядоченная коллекция пар ключ-значение, заключенная в фигурные скобки {}. Ключи должны представлять собой строки, заключенные в двойные кавычки, а значения могут иметь любой поддерживаемый тип данных, включая другие объекты или массивы.
  6. Null: представляет собой пустое или несуществующее значение.

Например,

{
    "name":"Alice",
    "age":25,
    "isStudent":true,
    "favColours":["red","blue","black"],
    "address": {
        "street":"123 Main St",
        "city":"cityname",
        "zipcode":null
    }
}

Синтаксис

Синтаксис JSON состоит из набора правил:

  1. Написано внутри фигурных скобок
  2. Данные организованы в пары ключ-значение.
  3. Имена ключей должны быть заключены в двойные кавычки.
  4. Значения могут относиться к любым поддерживаемым типам данных.
  5. Квадратные скобки для хранения массива и фигурные скобки для хранения объектов.
{
  "name": "John",
  "age": 30,
  "isStudent": false
}

JSON против XML

JSON - альтернатива XML. И JSON, и XML используются для хранения и обмена данными. XML - это язык разметки, используемый для структурирования данных и часто используемый в конфигурациях, документах и ​​обмене данными.

Давайте посмотрим разницу между JSON и XML.

  1. JSON - это текстовый формат, а XML - это язык разметки.
  2. JSON легче, а XML тяжелее из-за сложного синтаксиса.
  3. 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.

  1. Точечное обозначение
  2. Квадратное обозначение

Точка (.):

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.

Спасибо, что уделили время прочтению этой статьи.

JsonJavaScriptWeb DevelopmentFront End DevelopmentBackend

Похожие материалы

Статья из архива сайта: перевод и редактура материала сообщества разработчиков. Версии библиотек и инструментов могли измениться, сверяйтесь с официальной документацией.