Перейти до вмісту

JSON

Матеріал з K2 ERP Wiki

}

"id": 1,

JSON і YML

"timestamp": "2026-05-14T12:30:00",
"total_amount": 89500

ШІ має змогу проаналізувати.; Критерій

"items": [

Це робить JSON дуже зручним для інтеграцій.; |}

Усі ці сценарії часто використовують JSON.; "UAH",

JSON і дашборди

</syntaxhighlight>

"items": [
"active": True

{ У складних системах JSON часто застосовується в чергах повідомлень.;

"id": 15,

У подієвій архітектурі JSON має змогу описувати події.; !; "geo": {

 "status": "processed",
]
У сучасних веб-додатках frontend і backend часто спілкуються саме через JSON.; |-
| Для чого застосовується JSON?; |-
| має змогу стати хаотичним
| Без схем і документації JSON-структури оперативно розповзаються.; '''JSON у K2 ERP  це універсальна мова обміну даними, яка сприяє системі спілкуватися з сайтами, мобільними додатками, банками, маркетплейсами, AI-сервісами, BI та зовнішніми системами.'''
== JSON і маркетплейси ==

ERP повинна поводитися з персональними даними обережно.; "request_id": "req-123"
 },
 },

== JSON і webhooks ==

 "amount": "12500.50",

 }
]
"contractor": "ФОП Тест",
"name": "name",

з цієї причини потрібно уважно контролювати: Тобто JSON має змогу бути транспортним форматом між веб-редактором і backend.; "USD",

JSON має змогу використовуватися для передачі екземплярів цих сутностей.;== JSON і TypeScript ==

"name": "Ноутбук",

як ілюстрація, документ “Замовлення покупця” має змогу містити шапку документа і табличну частину:

},

Простіше кажучи:

"department": "Київ",

Найпростіший приклад JSON:

</syntaxhighlight>

print(json_text)

Правильно:

В ERP це критично, бо фінансові помилки — це вже не “ой, поправимо колір кнопки”.; { Додаються нові поля, змінюються структури, з’являються нові сценарії.; {

{
}
"email": "ivan@example.ua"
"quantity": 5
"name": "ТОВ Новий замовник",
"code": "VALIDATION_ERROR"

K2 ERP має змогу прийняти ці інформаційні дані, створити контрагента, замовлення покупця, резерв товару або інші документи.; "name": "customer_order",

],

</syntaxhighlight> Незрозуміло, що таке `field1`, навіщо `field3`, хто це використовує і що буде, якщо його змінити.; JSON простий, але має суворий синтаксис.; }

"type": "document",

Це комфортно, бо JSON надає можливість передавати структуровані інформаційні дані.; "status": "delivered",

code: string;

}

"price": 32000

!; }, Приклад XML: {

як ілюстрація:
</syntaxhighlight>
 },

[[K2 ERP]] має змогу отримати цей статус і оновити замовлення або документ відвантаження.; {| class="wikitable" style="width:100%;"

Приклад умовного запису JSON-даних:
 "engineer_id": 8,

}
 "filter": {
як ілюстрація:
== JSON і конфігурація користувача ==
 "number": "ЗП-000101",
 "name": "number",

як ілюстрація, [[K2 ERP]] має змогу надіслати JSON на зовнішній URL, коли створено нове замовлення.; |-
| Версіонування API
| Зміни структури мають бути контрольованими.; "price": 32000,

 "field": "date",

Request:

* повертати тисячі записів без пагінації;
* передавати зайві поля;
* вкладати занадто багато рівнів;
* дублювати одні й ті самі інформаційні дані;
* не стискати трафік;
* формувати дуже важкі відповіді для дашбордів.; "id": 15,
 "method": "card",
== Приклад кращого JSON ==

Не потрібно повертати весь “цифровий складський облік” на кожен клік користувача.; Відповідь

{
{
"type": "string"
"language": "uk"
Основна роль Обмін даними Декларативний характеристика структур і моделей
Типове використання API, відповіді сервера, інтеграції ER-моделі, компоненти, форми, меню, генерація
Читабельність для людини Добра Дуже добра для великих конфігурацій
Коментарі У стандартному JSON не підтримуються Підтримуються
Зручність для API Дуже висока Менш типова
Зручність для конфігурацій Добра Часто зручніша

Штучний інтелект часто функціонує з JSON.;</syntaxhighlight>

JSON має змогу зберігати конфігурація користувача.; "id": 101,

</syntaxhighlight>

"name": "Ноутбук",
"id": 15,

Коли краще не використовувати JSON

"code": "000001",

Приклад: JSON підтримує роботу кілька базових типів даних.; "file_id": 501,

"edrpou": "12345678"
"active": true

}

"code": "000001",

Приклад статусу доставки:

істотно:

"total_amount": 12400 XML досі застосовується в багатьох державних, банківських, корпоративних і старих інтеграціях.; "number": "ЗП-000101", },
 id: int

 "email": "ivan@example.ua"

 "type": "kpi",

* швидше шукати в JSON-структурах;
* індексувати певні частини JSON;
* фільтрувати записи за вкладеними значеннями;
* комфортно працювати з напівструктурованими даними.; |-
| Чи підтримує роботу JSON коментарі?; "items": [
 "contractor_id": 15,
}

Це надає можливість frontend-розробнику працювати з даними без хаосу.; Окрім REST API, JSON часто застосовується і в GraphQL.; "warehouse": "Відділення №12"

Він достатньо простий для людини, достатньо формальний для машини й достатньо універсальний, щоб використовуватися майже всюди.;
 "sku": "NB-001",

Для системи це теж зрозуміла структура, яку можна передати через [[API]], зберегти, обробити або перетворити на об’єкт у програмному коді.; "date": "2026-05-14T10:15:00",
FROM integration_logs

{

 "created_at": "2026-05-14T12:30:00"

{

== Валідація JSON ==

<div style="border:3px solid #2e7d32; background:#e8f5e9; padding:14px; margin:16px 0;">
JSON сам по собі не є собою небезпечним або безпечним.;
"name": {
"theme": "light",
"component": "sales",
"tracking_number": "20400012345678",

Так платформа знає, до якої сутності прикріплено файл, але сам файл не “запихається” у JSON без потреби.; {| class="wikitable" style="width:100%;"

},
 "success": true,
 "entity": "repair_request",

Якщо поле `name` має бути рядком, TypeScript допоможе не переплутати його з числом або об’єктом.; Видно, що:

Рекомендації для K2 ERP

 <price>32000</price>
|-
| Простота
| JSON без зайвих зусиль читати й писати.;
"phone": "+380671234567",
"name": "Товар",
JSON не призначений для зберігання великих файлів.; Для K2 ERP JSON — це один із ключових форматів взаємодії із зовнішнім світом.;
 }
 {
<syntaxhighlight lang="json">
{| class="wikitable" style="width:100%;"

</product>

 "code": "000001",

 "entities": [

<syntaxhighlight lang="json">

* URL запиту;
* метод;
* заголовки;
* приклад запиту;
* приклад відповіді;
* можливі помилки;
* обов’язкові поля;
* типи даних;
* обмеження;
* версію API.; "order": {
 {
JSON краще підходить для машинного обміну.; * `code`  це код товару;
* `name`  назва;
* `price`  ціна;
* `active`  ознака активності.;<syntaxhighlight lang="json">

JSON і партнери K2 ERP

"amount": 1200000
"name": "ТОВ Приклад"
{

 "operation": "create",
{
'''Метафора.''' Якщо [[YML]]  це креслення майбутнього модуля, то JSON  це транспорт, який возить інформаційні дані між будівельниками, складами, диспетчерами й готовим будинком.; }
"amount": 51000

{ Python додатково дуже комфортно функціонує з JSON.;=== Помилка ===

  • зайва кома;
  • відсутні лапки навколо ключів;
  • одинарні лапки замість подвійних;
  • неправильний тип даних;
  • незакриті дужки;
  • змішування масивів і об’єктів;
  • відсутність обов’язкових полів;
  • неправильне кодування;
  • передача дат у різних форматах;
  • неоднозначні назви полів.;== Що таке JSON ==
"active": true } } ERP має змогу автономно синхронізувати ці інформаційні дані з маркетплейсом.; Файли краще передавати окремо, а в JSON зберігати метадані.; YML "contractor": "ТОВ Приклад", "currency": "UAH" } Для K2 ERP. JSON застосовується там, де потрібно оперативно, зрозуміло й універсально передавати інформаційні дані між системами: через API, інтеграції, frontend, backend, мобільні додатки, зовнішні сервіси та ШІ.; }
{
 }
 "lng": 30.5234
export interface Contractor {
 "number": "ЗП-000101",
== JSON і сумісність між системами ==
 "warehouse": {
'''істотно.''' JSON здається простим, але в серйозних ERP-інтеграціях навіть маленька помилка в структурі має змогу перетворити “оперативно передамо інформаційні дані” на вечір пошуку однієї зайвої коми.; Назва '''JSON''' походить від '''JavaScript Object Notation''', але сьогодні формат давно вийшов за межі [[JavaScript]] і застосовується майже в усіх сучасних мовах програмування: [[Python]], [[TypeScript]], [[JavaScript]], [[Java]], [[C Sharp|C#]], [[PHP]], [[Go]], [[Rust]] та інших.; | У стандартному JSON коментарі не підтримуються.; !; Не бути закритим островом.; як ілюстрація, один користувач системи має змогу бачити суму документа, а інший  ні.; |-
| Структуровані помилки
| Помилка має мати код, повідомлення і, за функціональні можливості, поле.; |-
| Універсальність
| Підтримується майже всіма мовами програмування.; "number": "ЗП-000102",

!;
"active": true

}

JSON і продуктивність

Саме таким форматом став JSON.; | JSON зазвичай компактніший, простіший і зручніший для веб-розробки, хоча XML досі застосовується в багатьох інтеграціях.;
 "widgets": [

== JSON і PostgreSQL ==

 "edrpou": "87654321"

 "amount": 12500.50,
 {
{
У [[K2 ERP]] основою автоматичного створення компонентів має змогу бути [[YML]] і [[ER-модель]].;

JSON і ORM

"currency": "UAH"
'''YML  для опису того, що платформа має створити.'''
 "currency": "UAH"
}
{
Це надає можливість нормально передавати українські символи:
 "id": 15,
JSON комфортно використовувати в тестах.; |-
| Вкладені структури
| надає можливість передавати складні об’єкти й масиви.; "contractor": "ТОВ Приклад",
== JSON у програмуванні зі швидкістю думки ==
 {

 "type": "object",

Мобільний додаток зберігає локальний JSON:

* [[K2]]
* [[K2 ERP]]
* [[K2 Update]]
* [[ERP]]
* [[JSON]]
* [[YML]]
* [[YAML]]
* [[XML]]
* [[API]]
* [[REST API]]
* [[GraphQL]]
* [[Webhook]]
* [[ORM]]
* [[ER-модель]]
* [[BP-модель]]
* [[Python]]
* [[TypeScript]]
* [[JavaScript]]
* [[PostgreSQL]]
* [[JSONB]]
* [[SQL]]
* [[AI]]
* [[Штучний інтелект]]
* [[BI]]
* [[CRM]]
* [[WMS]]
* [[Open source]]
* [[Автоматизація бізнесу]]
* [[Українське програмне забезпечення]]
* [[Альтернатива 1С]]
* [[Альтернатива BAS]]
* [[Цифрова незалежність]]
},

JSON — це текстовий формат, який надає можливість описувати інформаційні дані у вигляді пар “ключ-значення”, списків, вкладених об’єктів, чисел, рядків, логічних значень і `null`.; { Приклад відповіді сервера:

== JSONB у PostgreSQL ==
== JSON і GraphQL ==

</syntaxhighlight>

"date": "2026-05-02",
"unit": "шт",
"delivery": {

У K2 ERP істотно розуміти різницю між JSON і YML.; "title": "продажі та реалізація за місяць",

"total": 2

</syntaxhighlight>

"unit": "шт",

}

У концепції програмування зі швидкістю думки JSON відіграє допоміжну, але важливу роль.; Але JSON додатково має змогу брати участь у цьому процесі.; { {

"product_id": 2,

Приклад опису контрагента:

"payload_id": "BANK-001"

}

Рекомендації щодо JSON в API

JSON і BI

}

"order": {
=== Запит ===

 "product_name": "Монітор",
== Зовнішні посилання ==
<div style="border:3px solid #2e7d32; background:#e8f5e9; padding:14px; margin:16px 0;">
 }
 "name": "Тестовий контрагент"
<syntaxhighlight lang="json">
 "status": "success",
}
 }
 source: string;
GraphQL надає можливість клієнту точніше вказувати, які інформаційні дані потрібні.;

JSON — для передачі того, що платформа вже створила, отримала або обробляє.

"field2": "десь",

Тест має змогу перевірити, що API повернув: }

{
Стабільні назви полів JSON частіше застосовується для обміну даними, а YML — для декларативного опису моделей, структур і компонентів.; "number": "ЗП-000101",
"amount": 850000

Приклад відповіді GraphQL теж часто має JSON-структуру:

"amount": 42000

} JSON передає конкретного контрагента:

},

Тут структура зрозуміла: є собою контрагент і замовлення.; Якщо все описувати як `dict` або `any`, платформа оперативно втрачає контроль над структурою.; * для передачі моделі з веб-редактора на сервер;

  • для роботи AI-сервісів;
  • для API;
  • для тестування;
  • для синхронізації;
  • для інтеграцій;
  • для передачі результатів автоматичної генерації;
  • для обміну між компонентами.; {

</syntaxhighlight> На перший погляд JSON не має прямого стосунку до цифрової незалежності.; }

"comment": "Роботи розпочато",

] API — одна з головних сфер використання JSON.;== Приклад поганого JSON ==

"event": "payment_received",

Секрети потрібно зберігати й передавати правильно, а не “тимчасово в JSON”.; JSON

Приклад тестового запиту:

"error": {

}

JSON і імпорт даних

JSON і черги повідомлень

Приклад читання JSON:

"edrpou": "12345678"
"sku": "MN-001",

як ілюстрація, можна передати ШІ характеристика задачі: JSON Schema — це спосіб описати структуру JSON-даних.; }

{

Для помилки:
 "data": {
<syntaxhighlight lang="json">
 payload: dict
 "data": [
 }
== JSON і цифрова незалежність ==
<syntaxhighlight lang="json">
"success": true,

{

[

"product_id": 1,
}

data = {

Але для ручного імпорту Excel має змогу залишатися корисним.;
"sku": "NB-001",

ERP має змогу використати ці інформаційні дані для автоматичного створення платежів або звірки з рахунками.; Сайт передає замовлення в ERP.; "default_warehouse": 1,

"type": "directory",

У API JSON має змогу використовуватися для передачі фільтрів.; |-

Зручність для API є собою стандартним форматом для багатьох REST API.; }

BI-системи можуть отримувати інформаційні дані з ERP через API у JSON.; Пояснення 05/14/2026

"type": "chart",

JSON і інтеграції з сайтами

"payment": {
"date": "2026-05-14",

Приклад:

"success": true,
}

 "items": [

!; "phone": "+380671234567",
 "columns": ["number", "date", "contractor", "total_amount"],
 "name": "ТОВ Новий замовник",

Іноді бізнес-середовище звик обмінюватися даними через Excel.; Недолік

"name": "dogovir.pdf",
{
},
"status": "paid"

import json </syntaxhighlight>

data = json.loads(json_text)
 "method": "card",
 }
 "message": "Товар з кодом NB-001 не знайдено",

Маркетплейси передають багато даних через API:

 'name': 'Товар'

{

 "message": "Контрагента створено"

* конектори до сайтів;
* інтеграції з банками;
* інтеграції з маркетплейсами;
* обмін із CRM;
* мобільні додатки;
* BI-конектори;
* webhooks;
* AI-сервіси;
* галузеві API;
* сервіси синхронізації.; {
 <code>000001</code>
 "sku": "NB-001",
 "content_type": "application/pdf",
 "id": 20,
== JSON і ER-модель ==

як ілюстрація:

"price": 32000,
},
"contractor": "ТОВ Приклад"
},

JSON і служби доставки

JSON і персональні інформаційні дані

"error": {

Сучасна ERP — це не монолітна програма, яка живе сама по собі.; Для якісного API варто дотримуватися кількох правил.; "number": "ЗП-000101"

"price": 32000,
"price": 100,
{

} Приклад відповіді сервера: Мобільний додаток має змогу передати такий JSON на сервер, коли інженер почав виконання заявки.;== JSON і AI ==

}

</syntaxhighlight>

* мобільного складу;
* сервісних заявок;
* торгових представників;
* погодження документів;
* мобільних дашбордів;
* офлайн-режиму;
* синхронізації даних;
* фотофіксації;
* роботи з файлами.; "quantity": 3,
 "module": "service_requests",
Гроші в JSON потрібно передавати обережно.;<syntaxhighlight lang="json">

<syntaxhighlight lang="json">

 }

У сучасній розробці бізнес-систем інформаційні дані постійно рухаються.; Frontend запитує інформаційні дані через [[API]].; Для API краще використовувати єдиний стандартний формат.; }
 "code": "NB-001",

Одна з типових проблем в інтеграціях  дати.; |-
| Чому JSON важливий для API?; }
{
З часом API змінюється.; "required": true

 "code": "000015",

 },

 {

Той самий характеристика у JSON:

 "currency": "UAH",
До популярності JSON у багатьох інтеграціях активно використовувався [[XML]].; '''JSON у K2 ERP.''' Це формат, через який інформаційні дані можуть оперативно рухатися між компонентами, зовнішніми системами, веб-інтерфейсом, мобільними додатками та AI-сервісами.; Приклад того, чого не варто робити:

Для користувача з обмеженими правами:

[[Категорія:ERP для розробників]]

* як заміну нормальної структури бази даних;
* для великих бінарних файлів;
* для складних ручних конфігурацій, де потрібні коментарі;
* для фінансових структур без чітких правил точності;
* без валідації в API;
* без документації в інтеграціях;
* як “складський облік усього незрозумілого”.; |-
| Валідація
| API має перевіряти вхідні інформаційні дані.; "id": "BANK-001",
 }
 "required": true
як ілюстрація:
 "number": "ЗП-000101",
 "status": "in_work",
 {
 "quantity": "багато"
Правильно:
"code": "NOT_FOUND",

</syntaxhighlight>

Приклад списку товарів:

"auto": true

як ілюстрація:

Без прикладів інтегратор починає ворожити.; "fields": [

"name": "ТОВ Приклад",
"success": true
"name": "Монітор",

Якщо інформаційні дані мають чітку структуру і активно використовуються у звітах, фільтрах та зв’язках, їх краще зберігати у нормальних таблицях.; "field4": true як ілюстрація: export interface IntegrationLog {

"data": {

{

Вступ

{ Сервіс на Java має змогу обробити.; "items": [

"id": 20
"name": "ТОВ Приклад",

}

"email": "office@example.ua",
"type": "string",
JSON не завжди є собою найкращим вибором.;
 "name": "Клавіатура",
}
"limit": 50,
Для української ERP це істотно, бо інформаційні дані містять українські назви, адреси, документи, коментарі та службові тексти.;
з цієї причини API має бути продуманим.; Правило

 "problem_description": "Не запускається обладнання"

 "name": "ключовий складський облік"

[[PostgreSQL]] має потужні функціональні можливості роботи з JSON і JSONB.; Дашборди часто отримують інформаційні дані у JSON.; Такий підхід робить інтеграцію передбачуваною.; Пояснення
{
 "status": "created"
Але істотно не зловживати JSON у базі даних.; Це шлях до цифрового горища.;

</syntaxhighlight>

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

 "created_at": "2026-05-14T12:30:00"
JSON легкий, але великі JSON-відповіді можуть створювати навантаження.; "name": "Товар"

це простий, легкий і зрозумілий формат обміну даними, який став фактичним стандартом для сучасних [[API]], веб-додатків та інтеграцій виступає ключовою рисою '''Головне.''' JSON.; "product_id": 1,
 {
 "id": 101,
<syntaxhighlight lang="json">
Це означає, що JSON-відповідь має змогу залежати від прав доступу.; "name": "Українська організація",
як ілюстрація:
<syntaxhighlight lang="json">
== JSON і права доступу ==

Приклад документації:

Проблеми можуть виникати, якщо:
 "enabled": true,
 "error": {
<syntaxhighlight lang="json">
 "code": "000015",
Приклад запиту на створення контрагента:

}

"product_id": 1,
  • які інформаційні дані передаються;
  • кому вони передаються;
  • чи є собою права доступу;
  • чи потрібні ці інформаційні дані в конкретній відповіді;
  • чи не потрапляють вони в логи без потреби;
  • чи захищений канал передачі.; Це корисно для:
"order_number": "ЗП-000101",

Але їхня роль різна.; |-

Суворий синтаксис Зайва кома або неправильні лапки роблять JSON некоректним.; "amount": 25500

JSON і логіювання

JSON надає можливість створювати вкладені об’єкти.; "data": [

]
"name": "date",
},

JSON і події

Для K2 ERP JSON важливий як формат API, інтеграцій, frontend/backend-взаємодії, мобільних додатків, AI-сервісів, логіювання, імпорту, експорту та синхронізації.; "result": {

 "sort": {
Для [[K2 ERP]] це істотно, бо [[Python]] має змогу використовуватися для backend-логіки, інтеграцій, обробки даних, API та [[AI|AI-сценаріїв]].; JSON став популярним саме з цієї причини, що він універсальний.; |-
| AI-сумісність
| Зручний для передачі структурованих даних AI-сервісам.; Служба доставки повертає статус посилки.; __TOC__
Але JSON став популярнішим у веб-розробці через простоту.; "type": "string",
{
<syntaxhighlight lang="json">
== JSON і кодування ==
Або в заголовках запиту.;
},
; У K2 ERP JSON важливий як один із базових форматів обміну даними між компонентами, зовнішніми системами, API, мобільними додатками, веб-інтерфейсом, інтеграціями та штучним інтелектом.; }
"event": "order.created",
},
"price": 8500,

Інший сервіс має змогу отримати це повідомлення й виконати дію.;</syntaxhighlight> { Служби доставки додатково часто використовують JSON у своїх API.; "raw_amount": "1200.50",

Погана практика. Поле data, у яке складають усе підряд, спочатку здається гнучкістю, а потім стає археологією.; |-

Пагінація списків Великі списки не треба повертати одним нескінченним JSON.; Для API істотно повертати помилки у структурованому вигляді.; Перевага
"delivery": {

Або що при відсутності назви повертається помилка:

"email": "client@example.ua"

JSON добре підходить для машинних налаштувань, але якщо конфігурацію часто читає й редагує людина, YML має змогу бути приємнішим.; Питання {

"operation_id": "ABC-123",
"order_number": "WEB-10025",

<product> {

}
"phone": "+380501112233",
"module": "sales",
"payer": "ТОВ замовник",
"success": false,
"name": "Іван Петренко",

Приклад некоректного JSON: class IntegrationLog(BaseModel):

"status": "completed"

Для ERP це має змогу бути цікавим у складних frontend-сценаріях.; | Так.; А кома, як відомо, іноді коштує дорожче за консультанта.; "name": "Ноутбук Lenovo",

"date": "2026-05-01",

JSON і API

"product_id": 1,

JSON без зайвих зусиль читати.; | Так.; {

Документація API має показувати:

{

Такий об’єкт має змогу бути відповіддю API при отриманні картки контрагента з K2 ERP.; "total_amount": 89500 </syntaxhighlight>

"date_to": "2026-05-31",
"date": "2026-05-14",

У всіх цих процесах потрібен зручний формат обміну даними.; {

"required": ["code", "name"],
"code": "000001",
"field": "items [0].sku"
"customer_orders": {

Для користувача з повними правами: [

},
payload: Record<string, unknown>;

[

платформа на [[TypeScript]] має змогу його прийняти.; },

У TypeScript можна описати тип:
{
}
 "field3": 123,
<syntaxhighlight lang="json">
{

Не тримати інформаційні дані в технологічній клітці.; "price": 8500

"orders": [
"type": "string",

</syntaxhighlight>

{

Для K2 ERP це принципово істотно, бо ERP не має змогу жити ізольовано.; * сайти;

  • мобільні додатки;
  • банки;
  • маркетплейси;
  • служби доставки;
  • CRM;
  • BI;
  • AI;
  • державні сервіси;
  • партнерські модулі;
  • хмари;
  • зовнішні API.; Вона повинна інтегруватися із сайтами, банками, маркетплейсами, CRM, BI, мобільними додатками, службами доставки та державними сервісами.; Приклад помилки із зайвою комою:
},
"id": 101,
"total_amount": 89500

Вкладені структури

}

<name>Ноутбук Lenovo</name>
"type": "string"

</syntaxhighlight>

"local_id": "tmp-001",

Тобто ER-модель описує структуру, а JSON передає інформаційні дані цієї структури.; }

платформа на Python має змогу відправити JSON.; Тип

</syntaxhighlight>

як ілюстрація, якщо API повертає JSON контрагента:

JSON і XML

JSON і YML. У K2 ERP YML більше підходить для декларативного опису моделей, структур і компонентів, а JSON — для обміну даними, API-відповідей, інтеграцій і машинної взаємодії.; Типові помилки:

; Excel зручний для людини, але не завжди зручний для автоматичних інтеграцій.; POST /api/contractors

Це надає можливість клієнту гнучко запитувати потрібні інформаційні дані.;== Об’єкти JSON == {

JSON у веб-розробці

{
"code": "000020",

</syntaxhighlight> як ілюстрація, лог інтеграції:

</syntaxhighlight>

Не варто використовувати JSON:

"code": "MN-001",
"success": true,
"code": "000020",
"price": 32000

як ілюстрація, у Python-моделі має змогу бути поле `metadata`, яке зберігає додаткові інформаційні дані:

JSON у K2 ERP

}
- Чим JSON відрізняється від YML?;</syntaxhighlight>
"total_amount": 89500
id: number;
 ]
 }
Безпека залежить від того, як платформа його приймає й обробляє.; Для [[K2 ERP]] JSON варто використовувати за такими принципами:

/api/v1/contractors
JSON має змогу використовуватися для конфігурацій, але для великих ручних конфігурацій у [[K2 ERP]] часто зручнішим є собою [[YML]].; }

* які поля мають бути;
* які типи даних очікуються;
* які поля обов’язкові;
* які значення допустимі;
* які обмеження застосовуються.;[[Категорія:Альтернатива 1С]]
== JSON у порівнянні з таблицями Excel ==
Але JSON має змогу використовуватися:
[[Категорія:TypeScript]]
Приклад списку валют:
 "table_settings": {
 "request_id": "req-124"
}
}
}
 {
}
</div>
JSON зручний для логіювання подій.; |-
| Чи можна зберігати JSON у [[PostgreSQL]]?;== Основні типи даних у JSON ==
 {
 "edrpou": "12345678",
 "active": true

Тут `payload` — поле типу JSONB, а `status` — значення всередині JSON.;</syntaxhighlight>

Різні системи можуть передавати дати по-різному: Приклад:

"date": "2026-05-14",

Коли інтернет з’являється, додаток синхронізує цю операцію з сервером.; Пояснення

"type": "boolean"

</syntaxhighlight>

Коротко

Приклад помилки з лапками:

]
"customer": {
"quantity": 2,
"id": 15,
"name": "Ноутбук Lenovo",

JSON і фільтри

 "id": 15,
 id: number;
{

[[Категорія:ORM]]

<syntaxhighlight lang="json">
"error": {

JSON став особливо популярним через веб-розробку.; Уявімо, що сайт передає замовлення в K2 ERP.; А отримати відповідь: } ORM-моделі можуть працювати з JSON-полями як зі звичайними структурами.; Обидва формати текстові.; { як ілюстрація: Це надає можливість старим клієнтам працювати зі старою структурою, а новим — використовувати нову.; |-

Єдиний формат дат як ілюстрація, ISO-формат 2026-05-14T12:30:00.;
"request_id": 501,

</syntaxhighlight>

"city": "Київ",
"price": 1200
"edrpou": "87654321",

Недоліки JSON

14.05.2026 json_text =

У K2 ERP JSON має змогу бути важливим форматом для взаємодії з AI-сервісами, особливо коли потрібно передавати структурований контекст, результати аналізу, параметри генерації або відповіді.; "equipment_id": 7,

Єдина структура спрощує життя frontend-розробникам та інтеграторам.;

import json

"success": false,
"password": "123456"

Це зменшує кількість помилок при інтеграціях.; "order_id": 101, Вона надає можливість визначити:

JSON і тестування API

"number": "ЗП-000101",

</syntaxhighlight> У TypeScript це має змогу виглядати так:

 {
Банківські сервіси можуть передавати інформацію про платежі.;[[Категорія:ERP]]

}

}

як ілюстрація, компонент продажів створив замовлення і відправив подію в чергу:

Приклад:

; JSON передає конкретне замовлення:
"title": "Заявка на ремонт",
"external_id": "WEB-10025",

{

{
"quantity": 12

</syntaxhighlight>

"field": "name"

}

"account": "UA123456789000000000000000000",

Для K2 ERP це істотно в сценаріях: як ілюстрація, зовнішня платформа має змогу запросити список залишків:

{

"name": "Ноутбук Lenovo",
"total_amount": 89500

У більшості сучасних REST API інформаційні дані передаються саме у форматі JSON.; "status": "paid" Приклад актуалізація залишку:

}

</div>

<syntaxhighlight lang="json">

<syntaxhighlight lang="json">

* користувач системи відкриває список документів;
* frontend відправляє запит до backend;
* backend повертає JSON зі списком документів;
* frontend показує ці інформаційні дані у таблиці.; Для партнерів [[K2 ERP]] JSON важливий як інструмент інтеграцій.;== Див.; додатково ==
== JSON і офлайн-режим ==
2026-05-14
|-
| Рядок
| <code>"Контрагент"</code>
| Текстове значення
|-
| Число
| <code>1250</code>
| Ціле або дробове число
|-
| Логічне значення
| <code>true</code>, <code>false</code>
| Так або ні
|-
| Об’єкт
| <code>{"name": "ТОВ Приклад"}</code>
| Набір ключів і значень
|-
| Масив
| <code>["UAH", "USD", "EUR"]</code>
| Список значень
|-
| Null
| <code>null</code>
| Відсутність значення
|}

{

<syntaxhighlight lang="json">

Сучасна українська ERP повинна говорити мовою сучасного світу.; "api_key": "secret-key-in-open-json",
 "name": "contractor",
<syntaxhighlight lang="json">
Тобто формати не конкурують напряму.; Валідація потрібна, щоб платформа не приймала некоректні інформаційні дані.; "id": 2,
{
 "name": "Ноутбук",
 "price": 32000

У [[ERP]] масиви часто використовуються для передачі списків документів, товарів, контрагентів, рядків табличної частини, статусів або результатів пошуку.; партнерська сторона має змогу створювати:
{
 "warehouse": "main",
 },
Інші модулі можуть реагувати на таку подію: створити задачу, надіслати повідомлення, оновити аналітику або запустити бізнес-процес.; }
 "number": "ЗП-000101",
 ],
== JSON і версіонування API ==
 "warehouse": "Відділення №12"
Навколо неї є собою:
{

Якщо API має чіткі JSON-схеми, на їх основі можна генерувати документацію.;

Webhook — це спосіб повідомити зовнішню систему про подію.; * перевіряти вхідні інформаційні дані;

  • не довіряти зовнішнім JSON автономно;
  • контролювати права доступу;
  • обмежувати розмір запитів;
  • логіювати інтеграції;
  • не передавати зайві персональні інформаційні дані;
  • використовувати автентифікацію;
  • шифрувати трафік через HTTPS;
  • не зберігати секрети у відкритому JSON.; }

платформа має змогу прочитати цей JSON і створити або оновити номенклатуру.;</syntaxhighlight>

"price": 32000,
 "data": {
 "purpose": "Оплата за рахунком №100"
Для [[ERP]] це дуже істотно, бо помилка в даних має змогу створити неправильні залишки, документи, звіти або платежі.; }

 }
<syntaxhighlight lang="json">

</syntaxhighlight>

як ілюстрація, імпорт довідника товарів:

"meta": {
"code": "TEST001",

BI має змогу використати для звіту.; Backend отримує запит, звертається до бази даних, формує відповідь і повертає її назад.;== JSON і Python ==

"number": "ЗП-000101",
;== JSON і документація API ==

WHERE payload->>'status' = 'processed';

  • довідників;
  • налаштувань;
  • публічних даних;
  • нечасто змінюваних списків;
  • дашбордів;
  • звітів.;{{SEO
{
"success": false,

Типові помилки в JSON

"type": "document"
{

{ </syntaxhighlight>

 "data": {

 "code": "VALIDATION_ERROR",

 "date": "2026-05-14",

 "title": "продажі та реалізація по днях",

 }

Response:
 "service": "Нова пошта",
 "code": {
 "product_name": "Ноутбук",
== Висновок ==
У [[PostgreSQL]] існує тип `jsonb`, який зберігає JSON у бінарному оптимізованому вигляді.; |}

[[Категорія:Автоматизація бізнесу]]

 "sales": [

 },

SELECT *
<syntaxhighlight lang="json">
{
JSON-відповіді можна кешувати.; |-
| Можливі проблеми з точністю чисел
| Для фінансових даних треба бути уважним.; |}

2026-05-14T12:30:00

{

== JSON і кешування ==
active: boolean;

</syntaxhighlight>

  • ER-модель описує сутності та зв’язки;
  • YML описує структури, моделі й компоненти;
  • ORM надає можливість коду працювати з базою даних;
  • PostgreSQL зберігає інформаційні дані;
  • API відкриває взаємодію із зовнішнім світом;
  • JSON передає інформаційні дані між системами.; А ворожіння в API зазвичай закінчується листом “у вас щось не функціонує”.; JSON зазвичай коротший, легший для читання і простіший для обробки у веб-додатках.; Сервер має змогу перетворити цю структуру на YML, ORM-моделі, міграції та інші елементи.; |-
Не замінює модель даних JSON не повинен підміняти нормальну ER-модель і структуру бази.;</syntaxhighlight>
"name": "ТОВ Приклад",
Далі ці інформаційні дані можуть використовуватися для побудови графіків, дашбордів і аналітики.;
В офлайн-режимі JSON має змогу використовуватися для збереження черги змін.;== Масиви JSON ==

json_text = json.dumps(data, ensure_ascii=False)

Але істотно правильно типізувати інформаційні дані там, де структура відома.; ]
'''Саме завдяки наявності таким відкритим і зрозумілим форматам, як JSON, [[K2 ERP]] має змогу розвиватися як сучасна українська [[ERP]]-платформа: компонентна, інтеграційна, API-first, готова до [[AI|ШІ]] та відкрита до партнерської екосистеми.'''
[[Категорія:Інтеграції]]

Приклад JSON Schema для контрагента:

TypeScript добре функціонує з JSON, з цієї причини що JSON природно схожий на об’єкти JavaScript.; Вони мають різні ролі.;
[[Категорія:API]]
завдяки наявності У великих інтеграціях JSON Schema користувачі можуть уникати хаосу.;[[Категорія:Python]]
Основна модель компонента має змогу створюватися через [[ER-модель]] і [[YML]].; PostgreSQL підтримує роботу JSON і JSONB, але не варто замінювати JSON-ом нормальну структуру бази даних там, де потрібні зв’язки й звіти.; }
 "number": "ЗП-000101",
 "value": 1250000,
Кешування сприяє зменшити навантаження на сервер і пришвидшити роботу інтерфейсу.; }
}
 name: string;

Це корисно в тих випадках, коли потрібно зберігати гнучкі структури даних.; Він відправить JSON через API.; як ілюстрація, сайт не буде надсилати в ERP замовлення через Excel-файл кожні 5 секунд.; Через рік розробники вже не програмують, а розкопують.; Приклад:
Проблема такого JSON у з цієї причини, що він нічого не пояснює.; Бо тимчасове в ІТ часто живе довше за деякі ERP-проєкти.; |}

 "entity": "contractor",

== JSON і помилки API ==
 "date": "2026-05-14",
 "success": true,
|-
| Немає коментарів у стандарті
| Для конфігурацій це має змогу бути незручно.; }
 "price": 8500
<syntaxhighlight lang="json">
{
== JSON Schema ==
 }
Webhooks зручні для інтеграцій із CRM, сайтами, службами доставки, аналітичними системами й іншими сервісами.; }

 }
{
 "meta": {
 "name": "Іван Петренко",
 "id": 101,
}
Для інтеграцій дуже істотно мати приклади JSON.; |-
| Документація
| Для інтеграторів потрібні приклади запитів і відповідей.;<syntaxhighlight lang="python">
== JSON і дати ==
 "contractor_id": 15
JSON має змогу використовуватися для імпорту даних у [[K2 ERP]].; }
{
}
як ілюстрація, frontend-редактор [[ER-модель|ER-моделі]] має змогу передавати на сервер структуру у JSON:
 {
 "warehouse": "main",
[[ER-модель]] описує сутності та зв’язки.;[[Категорія:YML]]

Для деяких систем істотно передавати суми як рядки, щоб уникнути проблем із точністю:

 }
 },
 }
<syntaxhighlight lang="text">
 "department": "Львів",
JSON, [[API]], [[YML]], [[ORM]], [[Python]], [[TypeScript]], [[PostgreSQL]]  це частина відкритої сучасної екосистеми, яка надає можливість [[K2 ERP]] інтегруватися з іншими системами й розвиватися незалежно.; "amount": 12500.50,
 "type": "datetime",
 }
 "contractor_id": 15,
<syntaxhighlight lang="typescript">
 }
 "page_size": 50
 }
 "offset": 0
Такі конфігурація можуть визначати мову, тему, видимі колонки, розмір сторінки, фільтри та інші параметри.; користувач системи відкриває форму у веб-інтерфейсі.; Мобільний додаток синхронізує документи.;== переважні аспекти JSON ==

як ілюстрація, якщо API очікує поле `quantity` як число, а зовнішня платформа передає рядок `"багато"`, це має бути помилкою.; * замовлення;
* товари;
* залишки;
* ціни;
* статуси;
* повернення;
* клієнтів;
* доставки.; "total_amount": 89500
 "order_id": 101,
 "settings": {
Об’єкт JSON  це набір пар “ключ-значення”.; {
 }
Це надає можливість:
 "data": {
 "properties": {
 "price": 100
== JSON і автоматична генерація компонентів ==
 {
== JSON і банки ==
як ілюстрація, [[ER-модель]] говорить, що є собою сутність `contractor`.;<syntaxhighlight lang="text">

JSON добре використовувати для:

 ]

У [[K2 ERP]] JSON має змогу використовуватися в багатьох сценаріях:

 "sku": "NB-001",

 "phone": "+380671234567",
{
 "quantity": 12
== Приклад повного API-сценарію ==
У правильній системі кожен інструмент має своє місце:
}
 }
 {

 "status_title": "Доставлено",

 "lat": 50.4501,
Це має змогу використовуватися для сайтів, маркетплейсів, мобільних додатків або BI-систем.; "contractor": {

 },

<syntaxhighlight lang="json">

JSON є собою одним із головних форматів, який надає можливість всім цим частинам говорити між собою.; }

 }

/api/v2/contractors

* обмін даними через [[API]];
* відповіді backend для frontend;
* інтеграції із зовнішніми системами;
* передача документів;
* синхронізація мобільних додатків;
* робота з [[AI|AI-сервісами]];
* обмін із сайтами та інтернет-магазинами;
* передача налаштувань компонентів;
* збереження частини службових структур;
* обмін між модулями;
* імпорт та експорт даних;
* логіювання подій;
* передача фільтрів, параметрів і результатів звітів.; "price": 32000

* [[API]];
* інтеграцій;
* відповідей сервера;
* запитів frontend;
* мобільних додатків;
* синхронізації;
* webhooks;
* черг повідомлень;
* AI-сервісів;
* логів;
* імпорту/експорту;
* передачі параметрів;
* дашбордів;
* обміну з сайтами й маркетплейсами.;== JSON і мобільні додатки ==

 "city": "Київ",
 "active": {
}
<syntaxhighlight lang="json">
Але JSON не повинен підміняти собою всю архітектуру.; Якщо [[YML]] можна назвати мовою опису моделей і компонентів, то JSON можна назвати мовою руху даних між системами.; "date": "2026-05-14",
 "contractor_id": 15,

 },

 "language": "uk",
JSON зазвичай застосовується з UTF-8.; ],
}
 "price": 8500
'''Баланс.''' JSON у базі даних корисний для гнучких структур, але не варто перетворювати ERP на один великий стовпець <code>data</code>, у якому “десь точно все є собою”.; | Текстовий формат обміну даними, який використовує об’єкти, масиви, рядки, числа, логічні значення та null.; {

[[Категорія:Інструменти розробника]]

 "amount": 64000
 "price": 32000,
<syntaxhighlight lang="typescript">
[[Категорія:ERP для партнерів]]
{
== JSON і конфігурації ==

{ </syntaxhighlight> </syntaxhighlight> Окремо варто відзначити який широко застосовують, коли потрібно у веб-розробці, API, інтеграціях, мобільних додатках, конфігураціях, обміні між серверами і клієнтами, а додатково у взаємодії з AI-сервісами.; "direction": "desc"

"event": "customer_order.created",

{

"field1": "щось",
  • frontend-розробників;
  • інтеграторів;
  • партнерів;
  • тестувальників;
  • зовнішніх клієнтів API;
  • AI-асистентів, які допомагають писати інтеграції.; |-
Чи застосовується JSON у K2 ERP?;</syntaxhighlight>

Не вимагати від усіх вивчати внутрішню мову старої системи.; * JSON — для обміну даними;

  • YML — для опису моделей і компонентів;
  • ER-модель — для архітектури сутностей і зв’язків;
  • ORM — для роботи коду з базою даних;
  • API — для стабільної взаємодії між системами;
  • JSON Schema — для контролю структури;
  • документація — для партнерів та інтеграторів;
  • валідація — для безпеки й якості;
  • версіонування — для довгострокової сумісності.; "transactions": [
"success": false,
},

Сайт або інтернет-магазин має змогу передавати замовлення в K2 ERP у JSON.; |-

Легкість Зазвичай компактніший за XML.; source: str ;
 ]
 "date": "2026-05-14",
== JSON і структура відповіді API ==
 "size": 245120,
 "period": "2026-05",
}
Приклад JSON-конфігурації:
як ілюстрація, користувач системи створив документ без інтернету.; "price": 32000

!; |-
| Придатність для інтеграцій
| Добре підходить для сайтів, банків, маркетплейсів, мобільних додатків і зовнішніх сервісів.; Обидва зрозумілі машинам і людям.; "id": 102,
Приклад правильного JSON:
Щоб не ламати інтеграції, потрібне версіонування.; }
Приклад SQL-запиту:

{

Але насправді має.; "customer": {
<syntaxhighlight lang="json">
{
!; Мобільні додатки майже завжди активно використовують JSON.; Багато AI-сервісів приймають запити у JSON і повертають відповіді додатково у JSON.;<syntaxhighlight lang="json">

Масив  це список значень або об’єктів.; | Бо він легкий, універсальний, зрозумілий і підтримується майже всіма сучасними мовами програмування.; "currency": "UAH"

<syntaxhighlight lang="json">

}
 "comment": "Оплата за рахунком"
 "code": "PRODUCT_NOT_FOUND",
|-
| Що таке JSON?; "id": 2,

 "name": "code",
Приклад JSON виписки:
Добре спроєктоване API має єдину структуру відповідей.; JSON має змогу використовуватися в [[API]], інтеграціях, frontend/backend-взаємодії, мобільних додатках, AI-сервісах і логіюванні.; ],
Це корисно для:
 "date_from": "2026-05-01",
 },
 "task": "generate_yml_model",
 "quantity": 2,
Приклад JSON для мобільної заявки:
 "name": "ТОВ Приклад",
}
 "source": "bank_api",
Такий формат надає можливість frontend або зовнішній системі зрозуміти, що саме сталося і як це показати користувачу.;<syntaxhighlight lang="json">
!; "EUR"

== JSON і експорт даних ==
}
}
 "quantity": 1,
Він простий, легкий, універсальний і добре підходить для обміну даними між системами.; Приклад
 "date": "2026-05-14",

]

як ілюстрація:

},
 "date": "2026-05-14",

 "code": "000015",
Це дуже комфортно для [[API]], з цієї причини що один JSON має змогу передати весь документ разом із рядками.;<syntaxhighlight lang="xml">

 "city": "Київ",

{

== JSON і автодокументація ==

}

Приклад:
}
 "delivered_at": "2026-05-14T15:40:00"

JSON і майбутнє ERP

{

"message": "Документ не знайдено"

Коли використовувати JSON

Такі логи без зайвих зусиль зберігати, аналізувати, фільтрувати і передавати в системи моніторингу.;ШІ отримує структуровану інформацію для аналізу або генерації відповіді.; Пояснення

"sku": "MN-001",
"name": "Монітор",
"data": {
"source": "bank_api",

ER-модель говорить, що документ `customer_order` має табличну частину `items`.; | Для API, інтеграцій, веб-додатків, мобільних додатків, AI-сервісів, імпорту, експорту, логів і обміну даними.; "message": "Поле 'name' є собою обов'язковим",

"description": "Створи модель для сервісних заявок на ремонт обладнання",
"name": "Товар",

print(data ["name"])

"date": "2026-05-14T11:25:00",

JSON — один із найважливіших форматів сучасної розробки.; }

}

"payment": {
"timestamp": "2026-05-14T12:30:00",
<active>true</active>
"contractor": {
  • додаткові параметри;
  • конфігурація;
  • відповіді зовнішніх API;
  • логи інтеграцій;
  • довільні властивості;
  • службові структури;
  • тимчасові інформаційні дані;
  • інформаційні дані, структура яких має змогу змінюватися.; Банк відправляє виписку.; "id": 101,
"edrpou": {

Це центр цифрової екосистеми.; |-

Немає вбудованих типів дат Дати передаються як рядки, з цієї причини потрібна домовленість про формат.; "name": "ТОВ Приклад",
]
"quantity": 25

}

JSON і файли

"id": 3,

{

JSON і безпека

"type": "string"
 "entity_id": 15
 ]
 "required": true
[[Категорія:ERP для інтеграторів]]

JSON часто застосовується для передачі персональних даних: імен, телефонів, email, адрес.; |-

Сумісність із JavaScript/TypeScript Природно функціонує у веб-інтерфейсах.;
{

 }

[[Категорія:Програмування]]

API не повинен повертати користувачу більше даних, ніж йому дозволено бачити.; '''JSON'''  текстовий формат представлення та обміну даними.; "active": true

 "allow_negative_stock": false
Документація з прикладами JSON значно зменшує кількість питань.; }
}
<syntaxhighlight lang="json">
}
'''
 "contractor": {
 "service": "Нова пошта",
{
Цей фрагмент описує товар із кодом, назвою, ціною та ознакою активності.; Мобільний додаток має змогу показати користувачу.; "date": "2026-05-15",
 "name": "Ноутбук Lenovo",
Frontend має змогу використати такий JSON для побудови інтерфейсу.; Обидва можуть описувати структури.; |-
| Чим JSON відрізняється від [[XML]]?; Це корисно для масштабованих систем, де компоненти не повинні жорстко залежати один від одного.; ]
 "type": "order_created",
=== Відповідь ===
 "fields": [
{
 "entity": "repair_request",

JSON і гроші

"quantity": 2,
"quantity": 1,

{