TG Telegram Group & Channel
Карьера аналитика | United States America (US)
Create: Update:

🤔Что такое JSON и в чем его отличие от JSON Schema

JSON - это один из самых популярных (а скорее всего и самый) форматов обмена данными на данный момент и он используется повсеместно. Также его можно встретить в требованиях к кандидату для любой вакансии системного аналитика.

Что же это такое?

JSON
(JavaScript Object Notation) — это структурированный текстовый формат обмена данными. Легко читается людьми. Имеет открытый стандарт.

Где используется
JSON независим от языков программирования и часто используется для, например:
💩при обмене данными через API. Например, в качестве одного из вариантов передачи body HTTP-запроса - мы можем использовать формат JSON (но это может быть также XML);
💩при создании конфигурационных параметров систем и (микро)сервисов. Например, достаточно часто мы хотим не хардкодить какие-то переменные значения и не зашивать их в код, а сделать их динамическими, для того чтобы не требовалось при изменении этих атрибутов каждый раз привлекать разработчкиов.
Для этого, "под ногами" у сервиса создается конфигурационный файл, в котором в формате json указываются необходимые нам настройки. И при необходимости их изменить, поддержка (обычно) изменяет конфигурационный файл, после чего перезапускает сервис, который, в свою очередь, подхватывает обновленный файл и использует уже новые настройки - удобно и быстро.
💩в NoSQL базах данных, например, в MongoDB. Т.е. мы можем хранить прям объект или массив объектов целиком в формате JSON в нереляционных базах.

Синтаксис
Json-объект — это неупорядоченное множество пар вида {"ключ": "значение"}.
Ключ – это название параметра, пишется в двойных кавычках;
Значение для ключа указывается после двоеточия;
Между парами ключ-значение ставится запятая. После последней пары запятая не ставится;
Писать ключи можно в любом порядке.

Типы данных
Строка – "name": "Сергей"
Число – целое или с запятой – "years": 24
Логический тип, boolean – true или false – "active": true
Массив – "names": [ "Сергей", "Алексей" ]
Объект – "person": { "name": "Сергей", "age": 29 }
null – пустое значение – "children": null

Как нам указывать поля с типом “дата”? JSON не даёт строгих указаний, в каком формате передавать дату и время. Можно использовать unix-time или передавать дату в строке, например, "2008-01-21T11:25:43-05:00".

JSON Schema

JSON Schema – это способ описания структуры и ограничений JSON-документов. В большинстве случае применяется для валидации данных при обмене информации между разными системами (часто можно ее встретить в том же swagger).
С помощью ключевых слов в схеме создаются правила валидации структуры объекта и типов его полей.

Пример такой схемы:

{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Product",
"description": "A product from Acme's catalog",
"type": "object",

"properties": {

"id": {
"description": "The unique identifier for a product",
"type": "integer"
},

"name": {
"description": "Name of the product",
"type": "string"
},

"price": {
"type": "number",
"minimum": 0,
}
},

"required": ["id", "name", "price"]
}


Эта схема нам говорит о том, что у объекта "Продукт" есть три атрибута: идентификатор, название и стоимость, каждый из которых обязателен и при этом стоимость не может быть отрицательной.
Что позволяет нам валидировать этот объект если, например, ожидаем его получить на вход какого-нибудь нашего метода. Если этот объект не будет удовлетворять указанным требованиям, то мы смело вернем ошибку валидации на такой запрос.

P.S.: Вот тут можно еще немного почитать про JSON.

🤔Что такое JSON и в чем его отличие от JSON Schema

JSON - это один из самых популярных (а скорее всего и самый) форматов обмена данными на данный момент и он используется повсеместно. Также его можно встретить в требованиях к кандидату для любой вакансии системного аналитика.

Что же это такое?

JSON
(JavaScript Object Notation) — это структурированный текстовый формат обмена данными. Легко читается людьми. Имеет открытый стандарт.

Где используется
JSON независим от языков программирования и часто используется для, например:
💩при обмене данными через API. Например, в качестве одного из вариантов передачи body HTTP-запроса - мы можем использовать формат JSON (но это может быть также XML);
💩при создании конфигурационных параметров систем и (микро)сервисов. Например, достаточно часто мы хотим не хардкодить какие-то переменные значения и не зашивать их в код, а сделать их динамическими, для того чтобы не требовалось при изменении этих атрибутов каждый раз привлекать разработчкиов.
Для этого, "под ногами" у сервиса создается конфигурационный файл, в котором в формате json указываются необходимые нам настройки. И при необходимости их изменить, поддержка (обычно) изменяет конфигурационный файл, после чего перезапускает сервис, который, в свою очередь, подхватывает обновленный файл и использует уже новые настройки - удобно и быстро.
💩в NoSQL базах данных, например, в MongoDB. Т.е. мы можем хранить прям объект или массив объектов целиком в формате JSON в нереляционных базах.

Синтаксис
Json-объект — это неупорядоченное множество пар вида {"ключ": "значение"}.
Ключ – это название параметра, пишется в двойных кавычках;
Значение для ключа указывается после двоеточия;
Между парами ключ-значение ставится запятая. После последней пары запятая не ставится;
Писать ключи можно в любом порядке.

Типы данных
Строка – "name": "Сергей"
Число – целое или с запятой – "years": 24
Логический тип, boolean – true или false – "active": true
Массив – "names": [ "Сергей", "Алексей" ]
Объект – "person": { "name": "Сергей", "age": 29 }
null – пустое значение – "children": null

Как нам указывать поля с типом “дата”? JSON не даёт строгих указаний, в каком формате передавать дату и время. Можно использовать unix-time или передавать дату в строке, например, "2008-01-21T11:25:43-05:00".

JSON Schema

JSON Schema – это способ описания структуры и ограничений JSON-документов. В большинстве случае применяется для валидации данных при обмене информации между разными системами (часто можно ее встретить в том же swagger).
С помощью ключевых слов в схеме создаются правила валидации структуры объекта и типов его полей.

Пример такой схемы:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Product",
"description": "A product from Acme's catalog",
"type": "object",

"properties": {

"id": {
"description": "The unique identifier for a product",
"type": "integer"
},

"name": {
"description": "Name of the product",
"type": "string"
},

"price": {
"type": "number",
"minimum": 0,
}
},

"required": ["id", "name", "price"]
}


Эта схема нам говорит о том, что у объекта "Продукт" есть три атрибута: идентификатор, название и стоимость, каждый из которых обязателен и при этом стоимость не может быть отрицательной.
Что позволяет нам валидировать этот объект если, например, ожидаем его получить на вход какого-нибудь нашего метода. Если этот объект не будет удовлетворять указанным требованиям, то мы смело вернем ошибку валидации на такой запрос.

P.S.: Вот тут можно еще немного почитать про JSON.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍43🔥189💘3💩2


>>Click here to continue<<

Карьера аналитика




Share with your best friend
VIEW MORE

United States America Popular Telegram Group (US)