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

JSON

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

"fields": [

FROM integration_logs

"external_id": "WEB-10025",

Тому потрібно уважно контролювати:

</syntaxhighlight>

"name": "name",

JSON і права доступу

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

</syntaxhighlight>

export interface Contractor {
Це здатна використовуватися для сайтів, маркетплейсів, мобільних додатків або BI-систем. "id": 15,

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

Саме таким форматом став JSON. }

 "table_settings": {
 "module": "service_requests",
Щоб не ламати інтеграції, потрібне версіонування.== JSON і банки ==
</div>
Сервер здатна перетворити цю структуру на [[YML]], [[ORM|ORM-моделі]], міграції та інші елементи. "status": "completed"

ERP здатна використати ці інформаційні дані для автоматичного створення платежів або звірки з рахунками.
}
"data": {
{

користувач системи відкриває форму у веб-інтерфейсі.== конкурентні переваги JSON ==

"order": {
"period": "2026-05",

У сучасній розробці бізнес-систем інформаційні дані постійно рухаються. XML досі застосовується для в багатьох державних, банківських, корпоративних і старих інтеграціях.== Зовнішні посилання ==

"contractor_id": 15,

Недоліки JSON

"date": "2026-05-14",
"contractor": {
"sku": "MN-001",
"size": 245120,

У K2 ERP JSON важливий як один із базових форматів обміну даними між компонентами, зовнішніми системами, API, мобільними додатками, веб-інтерфейсом, інтеграціями та штучним інтелектом. source: str

"city": "Київ",

Правильно:

"city": "Київ",
}

{

"id": 15,

[

"price": 32000,
 "customer": {

 {

Далі ці інформаційні дані можуть використовуватися для побудови графіків, дашбордів і аналітики. "entity_id": 15

 "unit": "шт",
== JSON і автодокументація ==
 "entities": [
 "total_amount": 89500
 "code": "000001",

<product>
}

</syntaxhighlight>

 "UAH",
<syntaxhighlight lang="json">
 "id": 2,
 "delivered_at": "2026-05-14T15:40:00"
 "total_amount": 89500

[[ER-модель]] говорить, що документ `customer_order` має табличну частину `items`. |}

 {

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

ШІ здатна проаналізувати.== JSON і логіювання ==

</syntaxhighlight>

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

JSON-відповіді можна кешувати. "email": "office@example.ua",

 },

}

 "allow_negative_stock": false

 "EUR"

 "active": true

 {

Валідація потрібна, щоб платформа не приймала некоректні інформаційні дані. "name": "ТОВ Новий клієнт ERP",
Приклад відповіді сервера:
Простіше кажучи:

JSON передає конкретне замовлення:

Запит

 "edrpou": "87654321"
Приклад:
 "operation_id": "ABC-123",
 {
 },
[
}
'''Саме через таким відкритим і зрозумілим форматам, як JSON, [[K2 ERP]] здатна розвиватися як сучасна українська [[ERP]]-платформа: модульна ERP, інтеграційна, API-first, готова до [[AI|ШІ]] та відкрита до партнерської екосистеми.'''
 "quantity": 1,
 "order_number": "ЗП-000101",
"active": true
"id": 101,
"type": "string"
000001
"total_amount": 89500
{

Такі логи швидко зберігати, аналізувати, фільтрувати і передавати в системи моніторингу.</syntaxhighlight>

JSON і дати

"payer": "ТОВ клієнт ERP",
"id": 15,
"success": true,
"contractor_id": 15,
},

{

} },
}

<syntaxhighlight lang="json">

 {
 "task": "generate_yml_model",
 "account": "UA123456789000000000000000000",
У правильній системі кожен інструмент має своє місце:
Це корисно для:
Об’єкт JSON — це набір пар “ключ-значення”. "product_id": 1,
У подієвій архітектурі JSON здатна описувати події.<syntaxhighlight lang="json">
[[ORM|ORM-моделі]] можуть працювати з JSON-полями як зі звичайними структурами. "sku": "NB-001",

Приклад оновлення версій залишку:

 "field4": true

}

 {

 ],

 "local_id": "tmp-001",

export interface IntegrationLog {
 "amount": 1200000
 "type": "document",
 "type": "kpi",
 "price": 32000
! JSON став особливо популярним через веб-розробку. |-
| Можливі проблеми з точністю чисел
| Для фінансових даних треба бути уважним. "contractor": "ТОВ Приклад",
{

 {

== JSON і сумісність між системами ==

[[BI]] здатна використати для звіту. "edrpou": "87654321",

 }

 <price>32000</price>

 },

== Приклад кращого JSON ==

* сайти;
* мобільні додатки;
* банки;
* маркетплейси;
* служби доставки;
* CRM;
* BI;
* AI;
* державні сервіси;
* партнерські модулі;
* хмари;
* зовнішні API.== Коли використовувати JSON ==
 "status": "created"
|-
| Рядок
| <code>"Контрагент"</code>
| Текстове значення
|-
| Число
| <code>1250</code>
| Ціле або дробове число
|-
| Логічне значення
| <code>true</code>, <code>false</code>
| Так або ні
|-
| Об’єкт
| <code>{"name": "ТОВ Приклад"}</code>
| Набір ключів і значень
|-
| Масив
| <code>["UAH", "USD", "EUR"]</code>
| Список значень
|-
| Null
| <code>null</code>
| Відсутність значення
|}

 active: boolean;

== JSON і кешування ==

JSON так само зручний для експорту даних.<div style="border:3px solid #2e7d32; background:#e8f5e9; padding:14px; margin:16px 0;">
JSON передає конкретного контрагента:
 "currency": "UAH"
 "title": "продажі та реалізація по днях",
Іноді бізнес-середовище звик обмінюватися даними через [[Microsoft Excel|Excel]]. "enabled": true,

 "quantity": 1,

 "warehouse": {

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

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

* для передачі моделі з веб-редактора на сервер;
* для роботи AI-сервісів;
* для API;
* для тестування;
* для синхронізації;
* для інтеграцій;
* для передачі результатів автоматичної генерації;
* для обміну між компонентами. "auto": true
Навколо неї виступає як:
[[K2 ERP]] здатна прийняти ці інформаційні дані, створити контрагента, замовлення покупця, резерв товару або інші документи.== JSON і файли ==

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

 "price": 32000,

На перший погляд JSON не має прямого стосунку до цифрової незалежності. "title": "продажі та реалізація за місяць",

як приклад:

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

 "number": "ЗП-000101",

 "offset": 0

<syntaxhighlight lang="json">
<syntaxhighlight lang="json">
 "type": "document"
 "geo": {
 "price": 32000
 }
}
data = json.loads(json_text)
}
JSON не призначений для зберігання великих файлів. |-
| Єдиний формат дат
| як приклад, ISO-формат <code>2026-05-14T12:30:00</code>. |-
| Не замінює модель даних
| JSON не повинен підміняти нормальну ER-модель і структуру бази. "quantity": 12

== JSON у K2 ERP ==

 }

SELECT *

 }

 "phone": "+380501112233",
Для якісного API варто дотримуватися кількох правил. |}

Але JSON не повинен підміняти собою всю архітектуру. як приклад, [[K2 ERP]] здатна надіслати JSON на зовнішній URL, коли створено нове замовлення. JSON сам по собі не виступає як небезпечним або безпечним.<syntaxhighlight lang="json">
 "date": "2026-05-14T11:25:00",
[[Категорія:Програмування]]
[[Категорія:ERP для інтеграторів]]

<syntaxhighlight lang="json">

{| class="wikitable" style="width:100%;"

 "price": 100,

* frontend-розробників;
* інтеграторів;
* партнерів;
* тестувальників;
* зовнішніх клієнтів API;
* [[AI|AI-асистентів]], які допомагають писати інтеграції. "edrpou": {
як приклад, компонент продажів створив замовлення і відправив подію в чергу:
 "id": 15,
 "equipment_id": 7,
}
У TypeScript це здатна виглядати так:
== Валідація JSON ==
}
 }
 }
 "name": "date",

<syntaxhighlight lang="text">

Інший сервіс здатна отримати це повідомлення й виконати дію.
"lat": 50.4501,

як приклад: JSON у K2 ERP. Це формат, через який інформаційні дані можуть оперативно рухатися між компонентами, зовнішніми системами, веб-інтерфейсом, мобільними додатками та AI-сервісами. "error": { </syntaxhighlight> У більшості сучасних REST API інформаційні дані передаються саме у форматі JSON. JSON здатна використовуватися для конфігурацій, але для великих ручних конфігурацій у K2 ERP часто зручнішим виступає як YML. {

class="wikitable" style="width:100%;"

{

"code": "000001",
Немає коментарів у стандарті Для конфігурацій це здатна бути незручно. ! Усі ці сценарії часто використовують JSON. Критерій

Це дає можливість:

Для ERP це здатна бути цікавим у складних frontend-сценаріях. } Для K2 ERP JSON варто використовувати за такими принципами: Це дає можливість frontend-розробнику працювати з даними без хаосу. | Для API, інтеграцій, веб-додатків, мобільних додатків, AI-сервісів, імпорту, експорту, логів і обміну даними. "date": "2026-05-14T10:15:00",

{

</syntaxhighlight>

"active": true
"field": "name"
 "name": "ТОВ Приклад"
== Коли краще не використовувати JSON ==
 "currency": "UAH"
{
 {
 }

Але насправді має. * перевіряти вхідні інформаційні дані;

  • не довіряти зовнішнім JSON автоматизовано;
  • контролювати права доступу;
  • обмежувати розмір запитів;
  • логіювати інтеграції;
  • не передавати зайві персональні інформаційні дані;
  • використовувати автентифікацію;
  • шифрувати трафік через HTTPS;
  • не зберігати секрети у відкритому JSON. |-
Суворий синтаксис Зайва кома або неправильні лапки роблять JSON некоректним. "payment": {
],

Тут `payload` — поле типу JSONB, а `status` — значення всередині JSON.</syntaxhighlight> JSON виступає як одним із головних форматів, який дає можливість всім цим частинам говорити між собою. Пояснення

JSON і TypeScript

"quantity": 5

JSON — текстовий формат представлення та обміну даними. Відповідь

"limit": 50,
"fields": [

</syntaxhighlight>

{

  • URL запиту;
  • метод;
  • заголовки;
  • приклад запиту;
  • приклад відповіді;
  • можливі помилки;
  • обов’язкові поля;
  • типи даних;
  • обмеження;
  • версію API. Якщо YML можна назвати мовою опису моделей і компонентів, то JSON можна назвати мовою руху даних між системами.</syntaxhighlight>

JSON і Python

</syntaxhighlight> json_text = json.dumps(data, ensure_ascii=False) Секрети потрібно зберігати й передавати правильно, а не “тимчасово в JSON”. "name": "customer_order", Приклад:

 "id": 101,

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

 "price": 32000

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

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

}
<syntaxhighlight lang="json">
 {
{
<syntaxhighlight lang="json">
Мобільний додаток здатна передати такий JSON на сервер, коли інженер почав виконання заявки.

</syntaxhighlight>

}

Приклад:

"name": "dogovir.pdf",
 "amount": 12500.50,
[[Категорія:Альтернатива BAS]]
Для [[K2 ERP]] JSON — це один із ключових форматів взаємодії із зовнішнім світом. Недолік
У [[ERP]] масиви часто використовуються для передачі списків документів, товарів, контрагентів, рядків табличної частини, статусів або результатів пошуку. "active": True
}
Для [[K2 ERP]] це критично, бо [[Python]] здатна використовуватися для backend-логіки, інтеграцій, обробки даних, API та [[AI|AI-сценаріїв]]. | Текстовий формат обміну даними, який використовує об’єкти, масиви, рядки, числа, логічні значення та null. | Так. Обидва можуть описувати структури. }
 "status": "paid"
 }

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

== JSON і структура відповіді API ==

 "status": "in_work",

== JSON і цифрова незалежність ==

 "email": "ivan@example.ua"
<div style="border:3px solid #2e7d32; background:#e8f5e9; padding:14px; margin:16px 0;">
{
 "name": "number",
<syntaxhighlight lang="json">
== JSON і конфігурація користувача ==
 "component": "sales",

 "code": "VALIDATION_ERROR",

Приклад того, чого не варто робити:

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

 "customer": {

Для партнерів [[K2 ERP]] JSON важливий як інструмент інтеграцій. {
 "contractor": {

Файли краще передавати окремо, а в JSON зберігати метадані. "active": true

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

== JSON і помилки API ==

<syntaxhighlight lang="python">

<syntaxhighlight lang="json">

 "type": "directory",

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

JSON добре підходить для машинних налаштувань, але якщо конфігурацію часто читає й редагує людина, YML здатна бути приємнішим. API не повинен повертати користувачу більше даних, ніж йому дозволено бачити. "price": 32000,
}
 "quantity": 3,

 "date": "2026-05-15",

В ERP це критично, бо фінансові помилки — це вже не “ой, поправимо колір кнопки”. "items": [

! 14.05.2026

* JSON — для обміну даними;
* [[YML]] — для опису моделей і компонентів;
* [[ER-модель]] — для архітектури сутностей і зв’язків;
* [[ORM]] — для роботи коду з базою даних;
* [[API]] — для стабільної взаємодії між системами;
* JSON Schema — для контролю структури;
* документація — для партнерів та інтеграторів;
* валідація — для безпеки й якості;
* версіонування — для довгострокової сумісності. |-
| Валідація
| API має перевіряти вхідні інформаційні дані. |-
| Сумісність із JavaScript/TypeScript
| Природно функціонує у веб-інтерфейсах. Вони мають різні ролі.

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

Легкість Зазвичай компактніший за XML.
 "field": "items [0].sku"
Незрозуміло, що таке `field1`, навіщо `field3`, хто це використовує і що буде, якщо його змінити. "type": "string"

}

"success": true,

{

! JSON
Приклад JSON-конфігурації:
 "type": "boolean"
 "contractor_id": 15

<syntaxhighlight lang="json">

}

{

 "title": "Заявка на ремонт",

POST /api/contractors
Гроші в JSON потрібно передавати обережно.<syntaxhighlight lang="json">
<div style="border:3px solid #ef6c00; background:#fff3e0; padding:14px; margin:16px 0;">
== JSON і черги повідомлень ==
'''Погана практика.''' Поле <code>data</code>, у яке складають усе підряд, спочатку здається гнучкістю, а потім стає археологією. Це корисно в тих випадках, коли потрібно зберігати гнучкі структури даних. "data": {
<syntaxhighlight lang="json">
}
 {
як приклад:

== JSON і події ==
{
{
 "total_amount": 89500
 }
== JSON і документація API ==
 "data": [

== Вступ ==

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

 "warehouse": "main",

}

 "quantity": 12
 "sales": [
<syntaxhighlight lang="json">
 }
як приклад, лог інтеграції:
"problem_description": "Не запускається обладнання"

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

"purpose": "Оплата за рахунком №100"

Сайт або інтернет-магазин здатна передавати замовлення в K2 ERP у JSON.</syntaxhighlight>

]

Frontend здатна використати такий JSON для побудови інтерфейсу. |-

Версіонування API - Що таке JSON?
Це означає, що JSON-відповідь здатна залежати від прав доступу. ]
 "name": "Українська компанія-користувач",
[[TypeScript]] добре функціонує з JSON, тому що JSON природно схожий на об’єкти JavaScript. Мобільні додатки майже завжди активно використовують JSON. "price": 32000
 "order": {
}
[[K2 ERP]] здатна отримати цей статус і оновити замовлення або документ відвантаження.
"code": "000020",
},
"price": 1200

Приклад повного API-сценарію

"value": 1250000,
{
"price": 32000

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

{

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

JSON і GraphQL

JSON здатна використовуватися для передачі екземплярів цих сутностей. "order_id": 101,

== JSON і інтеграції з сайтами ==
 "success": true,
<syntaxhighlight lang="json">

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

<syntaxhighlight lang="json">

 id: number;

 },

 {
 <active>true</active>
}
 "name": "Товар",
 "method": "card",
 "date": "2026-05-14",
== JSON і ORM ==
{
}
Цей фрагмент описує товар із кодом, назвою, ціною та ознакою активності. }
 "required": true
<syntaxhighlight lang="json">
[[ER-модель]] описує сутності та зв’язки.

</syntaxhighlight> Response:

== Об’єкти JSON ==
 "entity": "repair_request",
 "meta": {

}
{
 "type": "string",

 "tracking_number": "20400012345678",

'''Для K2 ERP.''' JSON застосовується для там, де потрібно оперативно, зрозуміло й універсально передавати інформаційні дані між системами: через [[API]], інтеграції, frontend, backend, мобільні додатки, зовнішні сервіси та [[AI|ШІ]]. "date": "2026-05-14",
Не тримати інформаційні дані в технологічній клітці. "name": "Ноутбук",

У TypeScript можна описати тип:

* конектори до сайтів;
* інтеграції з банками;
* інтеграції з маркетплейсами;
* обмін із CRM;
* мобільні додатки;
* BI-конектори;
* webhooks;
* AI-сервіси;
* галузеві API;
* сервіси синхронізації.== JSON і безпека ==
 "code": "NB-001",
<syntaxhighlight lang="json">
}
! Питання

 }

 },

 "status": "paid"

 "code": "000020",

Але JSON так само здатна брати участь у цьому процесі. {

 "order_number": "WEB-10025",
це простий, легкий і зрозумілий формат обміну даними, який став фактичним стандартом; так само реалізовано веб-додатків та інтеграцій виступає ключовою рисою сучасних [[API]] забезпечується через '''Головне.''' JSON. |-
| Придатність для інтеграцій
| Добре підходить для сайтів, банків, маркетплейсів, мобільних додатків і зовнішніх сервісів. У сучасних веб-додатках frontend і backend часто спілкуються саме через JSON. {
У [[K2 ERP]] основою автоматичного створення компонентів здатна бути [[YML]] і [[ER-модель]]. "field": "date",

Для помилки:

}
}
== JSON у програмуванні зі швидкістю думки ==
{{SEO
|title=JSON — формат обміну даними, API, інтеграції та роль у K2 ERP
|description=JSON — легкий текстовий формат обміну даними, який використовується в API, веб-додатках, інтеграціях, налаштуваннях, мобільних додатках, AI-сервісах і сучасних ERP-платформах. Роль JSON у K2 ERP поряд із YML, ORM, ER-моделями, Python, TypeScript та PostgreSQL.
|keywords=JSON, JavaScript Object Notation, K2 ERP, ERP, API, REST API, інтеграції, YML, XML, ORM, Python, TypeScript, PostgreSQL, AI, ШІ, бізнес-автоматизація, українська ERP, альтернатива 1С, альтернатива BAS
|image=https://erp.kyiv.ua
}}
 }
 "page_size": 50
}
 "error": {
 "quantity": 2,
 "product_id": 1,

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

 "type": "string"
 "code": {
 "items": [
 "type": "object",
 "contractor": "ТОВ Приклад",
 "required": true
 payload: dict
== JSON і PostgreSQL ==
{| class="wikitable" style="width:100%;"
 },

 "active": true

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

Для API критично повертати помилки у структурованому вигляді. "error": {

id: number;

як приклад, ER-модель говорить, що виступає як сутність `contractor`. "customer_orders": {

"type": "datetime",
"id": 101,
},
"code": "TEST001",

JSON і ER-модель

"price": 8500
"number": "ЗП-000101"
},
"timestamp": "2026-05-14T12:30:00",
]
"name": "Ноутбук Lenovo",
</div>

Для української ERP це критично, бо інформаційні дані містять українські назви, адреси, документи, коментарі та службові тексти. Для користувача з обмеженими правами:

}
 "active": {
2026-05-14
|-
| Стабільні назви полів
| Не треба сьогодні повертати <code>contractor_id</code>, а завтра <code>clientId</code> без версії API.
<syntaxhighlight lang="text">

* як заміну нормальної структури бази даних;
* для великих бінарних файлів;
* для складних ручних конфігурацій, де потрібні коментарі;
* для фінансових структур без чітких правил точності;
* без валідації в API;
* без документації в інтеграціях;
* як “складський облік усього незрозумілого”. }
Уявімо, що сайт передає замовлення в [[K2 ERP]].

}

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

/api/v2/contractors

"file_id": 501,
До популярності JSON у багатьох інтеграціях активно використовувався [[XML]]. "amount": 51000
== JSON і продуктивність ==
 "comment": "Роботи розпочато",

Масив — це список значень або об’єктів. У PostgreSQL існує тип `jsonb`, який зберігає JSON у бінарному оптимізованому вигляді. "contractor": "ФОП Тест",

З часом API змінюється.
<div style="border:3px solid #2e7d32; background:#e8f5e9; padding:14px; margin:16px 0;">
{
 },
 }

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

 },

 }

Обидва формати текстові. Приклад
Служби доставки так само часто використовують JSON у своїх API. |-
| AI-сумісність
| Зручний для передачі структурованих даних AI-сервісам. "success": true,
 {
JSON часто застосовується для для передачі персональних даних: імен, телефонів, email, адрес. |}

JSON здатна використовуватися для імпорту даних у [[K2 ERP]]. Приклад помилки з лапками:
== JSON і AI ==
 "warehouse": "main",
 "contractor": {
 "id": 101,
 "direction": "desc"
 "amount": 64000
[[Категорія:XML]]
== Висновок ==
<syntaxhighlight lang="json">
 "price": 32000,
Приклад тестового запиту:

} Проблема такого JSON у тому, що він нічого не пояснює. Але їхня роль різна. }

}

"date_from": "2026-05-01",
"id": 20
"type": "string",
"name": "ТОВ Приклад",
- Документація Для інтеграторів потрібні приклади запитів і відповідей. як приклад, можна передати ШІ SEO-опис задачі:
"product_id": 1,
 "name": "Іван Петренко",

}

}

Для ERP це дуже критично, бо помилка в даних здатна створити неправильні залишки, документи, звіти або платежі.

"id": 1,
"sku": "MN-001",

</syntaxhighlight>

"api_key": "secret-key-in-open-json",

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

"id": 15,

{

 "status_title": "Доставлено",
 "engineer_id": 8,
 ]
Сучасна ERP — це не монолітна програма, яка живе сама по собі. {
== JSON і автоматична генерація компонентів ==
"number": "ЗП-000101",
"department": "Київ",

} </syntaxhighlight> {

},

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

Тобто JSON — це не “архітектор” системи, але дуже важливий “кур’єр”, який оперативно й акуратно переносить інформаційні дані між її частинами.
"event": "order.created",
"type": "order_created",

{

</syntaxhighlight>

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

{

Той самий SEO-опис у JSON:

 "request_id": "req-123"
Або в заголовках запиту. платформа здатна прочитати цей JSON і створити або оновити номенклатуру. "price": 32000,
як приклад, frontend-редактор [[ER-модель|ER-моделі]] здатна передавати на сервер структуру у JSON:
{

Такі конфігурація можуть визначати мову, тему, видимі колонки, розмір сторінки, фільтри та інші параметри. Через рік розробники вже не програмують, а розкопують. Приклад помилки із зайвою комою: </syntaxhighlight>

JSON і фільтри

{

"transactions": [
{

критично. JSON здається простим, але в серйозних ERP-інтеграціях навіть маленька помилка в структурі здатна перетворити “оперативно передамо інформаційні дані” на вечір пошуку однієї зайвої коми. {

"price": 100
}
"data": {
"items": [

Правильно:

"service": "Нова пошта",
"email": "client@example.ua"

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

"request_id": 501,
"name": "Тестовий контрагент"

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

через У великих інтеграціях JSON Schema користувачі можуть уникати хаосу. Сайт передає замовлення в ERP. Тут структура зрозуміла: виступає як контрагент і замовлення. як приклад:

"id": 3,

</syntaxhighlight>

},

як приклад, імпорт довідника товарів: Але для ручного імпорту Excel здатна залишатися корисним. {| class="wikitable" style="width:100%;"

== Коротко ==
ERP здатна автоматизовано синхронізувати ці інформаційні дані з маркетплейсом. "phone": "+380671234567",
 "quantity": 2,
 "content_type": "application/pdf",
 "success": false,

<syntaxhighlight lang="json">

}

[[PostgreSQL]] має потужні функції ERP роботи з JSON і JSONB.=== Відповідь ===

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

JSON зазвичай застосовується для з UTF-8.

Тому API має бути продуманим. "code": "000001",

JSON інтуїтивно використовувати в тестах.
як приклад, користувач системи створив документ без інтернету. {

 },

{

 "code": "NOT_FOUND",

* додаткові параметри;
* конфігурація;
* відповіді зовнішніх API;
* логи інтеграцій;
* довільні властивості;
* службові структури;
* тимчасові інформаційні дані;
* інформаційні дані, структура яких здатна змінюватися.== JSON і BI ==
JSON не завжди виступає як найкращим вибором. |-
| Чим JSON відрізняється від [[XML]]? |-
| Чи можна зберігати JSON у [[PostgreSQL]]? import json
== Див. так само ==
[[AI|Штучний інтелект]] часто функціонує з JSON. }

 "lng": 30.5234

як приклад:

як приклад:

Приклад:

{

 "total_amount": 89500

Банківські сервіси можуть передавати інформацію про платежі. GraphQL дає можливість клієнту точніше вказувати, які інформаційні дані потрібні. А кома, як відомо, іноді коштує дорожче за консультанта.== JSON і XML ==
 payload: Record<string, unknown>;

 }

<div style="border:3px solid #2e7d32; background:#e8f5e9; padding:14px; margin:16px 0;">

Він простий, легкий, універсальний і добре підходить для обміну даними між системами. як приклад, зовнішня платформа здатна запросити список залишків:

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

}
== JSON і гроші ==
Багато AI-сервісів приймають запити у JSON і повертають відповіді так само у JSON. |-
| здатна стати хаотичним
| Без схем і документації JSON-структури оперативно розповзаються. ! Такий об’єкт здатна бути відповіддю [[API]] при отриманні картки контрагента з [[K2 ERP]]. Документація з прикладами JSON значно зменшує кількість питань. Банк відправляє виписку. Якщо API має чіткі JSON-схеми, на їх основі можна генерувати документацію. Excel зручний для людини, але не завжди зручний для автоматичних інтеграцій. PostgreSQL підтримує JSON і JSONB, але не варто замінювати JSON-ом нормальну структуру бази даних там, де потрібні зв’язки й звіти. * замовлення;
* товари;
* залишки;
* ціни;
* статуси;
* повернення;
* клієнтів;
* доставки. {
"name": "Монітор",

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

{

"delivery": {

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

Це дає можливість старим клієнтам працювати зі старою структурою, а новим — використовувати нову. |-

Чому JSON важливий для API?
Webhooks зручні для інтеграцій із CRM, сайтами, службами доставки, аналітичними системами й іншими сервісами. {
05/14/2026
 "date": "2026-05-14",
<syntaxhighlight lang="json">
|-
| Основна роль
| Обмін даними
| Декларативний SEO-опис структур і моделей
|-
| Типове використання
| API, відповіді сервера, інтеграції
| ER-моделі, компоненти, форми, меню, генерація
|-
| Читабельність для людини
| Добра
| Дуже добра для великих конфігурацій
|-
| Коментарі
| У стандартному JSON не підтримуються
| Підтримуються
|-
| Зручність для API
| Дуже висока
| Менш типова
|-
| Зручність для конфігурацій
| Добра
| Часто зручніша
|}

Для K2 ERP це принципово критично, бо ERP не здатна жити ізольовано. "date": "2026-05-14", Основна модель компонента здатна створюватися через ER-модель і YML. Сервіс на Java здатна обробити. |-

Чи застосовується для JSON у K2 ERP? {

А отримати відповідь:

"number": "ЗП-000101",

У K2 ERP критично розуміти різницю між JSON і YML. },

data = {
 "created_at": "2026-05-14T12:30:00"

Окрім REST API, JSON часто застосовується для і в GraphQL. { Додаються нові поля, змінюються структури, з’являються нові сценарії. JSON — для передачі того, що платформа вже створила, отримала або обробляє.

id: int

</syntaxhighlight> Проблеми можуть виникати, якщо: </syntaxhighlight>

},
"widgets": [
"name": "ТОВ Приклад",
<syntaxhighlight lang="json">
Webhook — це спосіб повідомити зовнішню систему про подію. }
{
{
 "total_amount": 12400

 "comment": "Оплата за рахунком"

}

 }

 "settings": {

* зайва кома;
* відсутні лапки навколо ключів;
* одинарні лапки замість подвійних;
* неправильний тип даних;
* незакриті дужки;
* змішування масивів і об’єктів;
* відсутність обов’язкових полів;
* неправильне кодування;
* передача дат у різних форматах;
* неоднозначні назви полів. |-
| Чи підтримує JSON коментарі? }

import json
[[Категорія:K2]]
 ]
 "sort": {
Якщо все описувати як `dict` або `any`, платформа оперативно втрачає контроль над структурою.== Масиви JSON ==
 "message": "Контрагента створено"
Інші модулі можуть реагувати на таку подію: створити задачу, надіслати повідомлення, оновити аналітику або запустити бізнес-процес.

{

"data": {
"id": 20,

{

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

JSON і API

"price": 8500

{ } критично: Тобто формати не конкурують напряму. class IntegrationLog(BaseModel):

code: string;
"raw_amount": "1200.50",

Але критично не зловживати JSON у базі даних. |-

Немає вбудованих типів дат Дати передаються як рядки, тому потрібна домовленість про формат. Метафора. Якщо YML — це креслення майбутнього модуля, то JSON — це транспорт, який возить інформаційні дані між будівельниками, складами, диспетчерами й готовим будинком. Frontend запитує інформаційні дані через API. },

як приклад:

"data": {
"success": true

JSON і YML

"field2": "десь",

Приклад списку валют: як приклад:

"currency": "UAH"

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

}
В офлайн-режимі JSON здатна використовуватися для збереження черги змін.<name>Ноутбук Lenovo</name>

 "items": [
 "city": "Київ",
[[Категорія:JavaScript]]
[[Категорія:JSON]]
<syntaxhighlight lang="json">
Приклад XML:
 "event": "payment_received",
 "name": {

}

! ]

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

* швидше шукати в JSON-структурах;
* індексувати певні частини JSON;
* фільтрувати записи за вкладеними значеннями;
* інтуїтивно працювати з напівструктурованими даними. "language": "uk"

{

}

 "date": "2026-05-14",
Добре спроєктоване API має єдину структуру відповідей. {

 }

* користувач системи відкриває список документів;
* frontend відправляє запит до backend;
* backend повертає JSON зі списком документів;
* frontend показує ці інформаційні дані у таблиці.<syntaxhighlight lang="json">
<syntaxhighlight lang="json">
 "date": "2026-05-02",
 }
 "type": "chart",
 "name": "Ноутбук",
== JSON і маркетплейси ==
'''Баланс.''' JSON у базі даних корисний для гнучких структур, але не варто перетворювати ERP на один великий стовпець <code>data</code>, у якому “десь точно все виступає як”. "name": "Клавіатура",

{

[[BI]]-системи можуть отримувати інформаційні дані з ERP через API у JSON. Для інтеграцій дуже критично мати приклади JSON. У складних системах JSON часто застосовується для в чергах повідомлень. Пояснення
Приклад запиту на створення контрагента:
"date_to": "2026-05-31",

Такий підхід робить інтеграцію передбачуваною. ]

"filter": {
"date": "2026-05-14",
"name": "Товар",

JSON став популярним саме тому, що він універсальний. |-

Для чого застосовується для JSON?ШІ отримує структуровану інформацію для аналізу або генерації відповіді.
 },
 "delivery": {
 {
Приклад умовного запису JSON-даних:
 "number": "ЗП-000101",
Але критично правильно типізувати інформаційні дані там, де структура відома. "edrpou": "12345678"
'''JSON у K2 ERP — це універсальна мова обміну даними, яка оптимізує системі спілкуватися з сайтами, мобільними додатками, банками, маркетплейсами, AI-сервісами, BI та зовнішніми системами.'''
{

Тобто ER-модель описує структуру, а JSON передає інформаційні дані цієї структури. Це дуже інтуїтивно для [[API]], тому що один JSON здатна передати весь документ разом із рядками. Backend отримує запит, звертається до бази даних, формує відповідь і повертає її назад. А ворожіння в API зазвичай закінчується листом “у вас щось не функціонує”. "source": "bank_api",
<div style="border:3px solid #1565c0; background:#e3f2fd; padding:14px; margin:16px 0;">
Але JSON став популярнішим у веб-розробці через простоту. ]

 "warehouse": "Відділення №12"

JSON здатна зберігати конфігурація користувача. {
 "phone": "+380671234567",
 },

 "field3": 123,

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

Для системи це теж зрозуміла структура, яку можна передати через [[API]], зберегти, обробити або перетворити на об’єкт у програмному коді. Приклад:
{
<syntaxhighlight lang="json">
! "sku": "NB-001",

print(data ["name"]) {

"name": "ТОВ Новий клієнт ERP",

}

"data": [
== Типові помилки в JSON ==
 }
[
2026-05-14T12:30:00
 "amount": "12500.50",
У [[K2 ERP]] JSON здатна бути важливим форматом для взаємодії з AI-сервісами, особливо коли потрібно передавати структурований контекст, результати аналізу, параметри генерації або відповіді. Вона дає можливість визначити:

* які інформаційні дані передаються;
* кому вони передаються;
* чи виступає як права доступу;
* чи потрібні ці інформаційні дані в конкретній відповіді;
* чи не потрапляють вони в логи без потреби;
* чи захищений канал передачі. | Бо він легкий, універсальний, зрозумілий і підтримується майже всіма сучасними мовами програмування. |-
| Вкладені структури
| дає можливість передавати складні об’єкти й масиви. "message": "Поле 'name' виступає як обов'язковим",
== JSON і імпорт даних ==
</product>
}
 "product_id": 1,
Документація API має показувати:
== Приклад поганого JSON ==
 "number": "ЗП-000101",
<syntaxhighlight lang="typescript">
 "entity": "contractor",
Приклад:
 "success": true,
{
JSON краще підходить для машинного обміну. Пояснення

JSON, [[API]], [[YML]], [[ORM]], [[Python]], [[TypeScript]], [[PostgreSQL]] — це частина відкритої сучасної екосистеми, яка дає можливість [[K2 ERP]] інтегруватися з іншими системами й розвиватися незалежно. "status": "success",

 "name": "Іван Петренко",

Не бути закритим островом. Request:

 ]

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

Безпека залежить від того, як платформа його приймає й обробляє.== JSON і версіонування API ==
 'name': 'Товар'
JSON легкий, але великі JSON-відповіді можуть створювати навантаження. "currency": "UAH",
[[Категорія:Інструменти розробника]]

 "operation": "create",
 "message": "Товар з кодом NB-001 не знайдено",

</syntaxhighlight>

JSON і конфігурації

Приклад правильного JSON:

 "order_id": 101,

 "unit": "шт",

[[Категорія:ERP для партнерів]]

}

 "product_id": 2,
 "edrpou": "12345678",
{| class="wikitable" style="width:100%;"
'''JSON Schema''' — це спосіб описати структуру JSON-даних. Обидва зрозумілі машинам і людям. "amount": 12500.50,
 }
 "result": {
 "name": "contractor",
як приклад, сайт не буде надсилати в ERP замовлення через Excel-файл кожні 5 секунд.<syntaxhighlight lang="json">
 "price": 8500
{
</div>
{
[[Категорія:Штучний інтелект]]
 "edrpou": "12345678"

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

Структуровані помилки Так. Пояснення
"module": "sales",

JSON і дашборди

Це дає можливість клієнту гнучко запитувати потрібні інформаційні дані. "meta": {

</syntaxhighlight> </syntaxhighlight> } Якщо поле `name` має бути рядком, TypeScript допоможе не переплутати його з числом або об’єктом. "data": { У K2 ERP JSON здатна використовуватися в багатьох сценаріях: Приклад JSON для мобільної заявки:

"name": "Монітор",
"payload_id": "BANK-001"

}

"number": "ЗП-000101",

Але JSON здатна використовуватися:

JSON зручний для логіювання подій. "default_warehouse": 1,

"items": [
"name": "Ноутбук Lenovo",
"error": {

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

"entity": "repair_request",
]

{

JSON — один із найважливіших форматів сучасної розробки. WHERE payload->>'status' = 'processed';

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

{

"number": "ЗП-000101",
"number": "ЗП-000101",

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

"warehouse": "Відділення №12"
"payment": {
"columns": ["number", "date", "contractor", "total_amount"],

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

Простота JSON швидко читати й писати.
"name": "ТОВ Приклад",

</syntaxhighlight> Мобільний додаток здатна показати користувачу. Окремо варто відзначити який широко застосовують, коли потрібно у веб-розробці, API, інтеграціях, мобільних додатках, конфігураціях, обміні між серверами і клієнтами, а так само у взаємодії з AI-сервісами. JSON здатна використовуватися в API, інтеграціях, frontend/backend-взаємодії, мобільних додатках, AI-сервісах і логіюванні. Тип

"quantity": 25
"name": "Товар"

Це дає можливість нормально передавати українські символи:

"total": 2

</syntaxhighlight>

"id": 101,

Це корисно для масштабованих систем, де компоненти не повинні жорстко залежати один від одного. ]

Єдина структура спрощує життя frontend-розробникам та інтеграторам. Бо тимчасове в ІТ часто живе довше за деякі ERP-проєкти. name: string;

"amount": 25500
},

}

Що таке JSON

],

{

JSONB у PostgreSQL

{

json_text =

 "status": "delivered",
[[Категорія:Інтеграції]]
JSON підтримує кілька базових типів даних. Мобільний додаток синхронізує документи. "sku": "NB-001",

 "USD",
Він достатньо простий для людини, достатньо формальний для машини й достатньо універсальний, щоб використовуватися майже всюди. Вона повинна інтегруватися із сайтами, банками, маркетплейсами, CRM, BI, мобільними додатками, службами доставки та державними сервісами. "type": "string",
 "date": "2026-05-14",
}
 "name": "code",
 {
 "code": "000015",

]

 {

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

 }

}
Такий формат дає можливість frontend або зовнішній системі зрозуміти, що саме сталося і як це показати користувачу.== Рекомендації щодо JSON в API ==
! Він відправить JSON через API. У всіх цих процесах потрібен зручний формат обміну даними. |}

 "theme": "light",

== JSON і майбутнє ERP ==

 "id": 2,

}

 "request_id": "req-124"

{

* [[ER-модель]] описує сутності та зв’язки;
* [[YML]] описує структури, моделі й компоненти;
* [[ORM]] дає можливість коду працювати з базою даних;
* [[PostgreSQL]] зберігає інформаційні дані;
* [[API]] відкриває взаємодію із зовнішнім світом;
* JSON передає інформаційні дані між системами. |-
| Пагінація списків
| Великі списки не треба повертати одним нескінченним JSON. |-
| Зручність для API
| виступає як стандартним форматом для багатьох REST API. source: string;
<syntaxhighlight lang="json">
 "number": "ЗП-000101",
"code": "PRODUCT_NOT_FOUND",
"email": "ivan@example.ua"
{

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

} }

"total_amount": 89500
{
}
 "name": "ТОВ Приклад",

 "department": "Львів",

 }

Для API краще використовувати єдиний стандартний формат. "name": "базовий складський облік"

{

</syntaxhighlight>

{
"success": false,

{

Для [[K2 ERP]] це критично в сценаріях:
 "field1": "щось",
 }
<syntaxhighlight lang="text">

 }

інтегратор здатна створювати:

як приклад, якщо [[API]] повертає JSON контрагента:

 "amount": 850000

* які поля мають бути;
* які типи даних очікуються;
* які поля обов’язкові;
* які значення допустимі;
* які обмеження застосовуються. }

 "description": "Створи модель для сервісних заявок на ремонт обладнання",
як приклад, якщо API очікує поле `quantity` як число, а зовнішня платформа передає рядок `"багато"`, це має бути помилкою. |-
| Універсальність
| Підтримується майже всіма мовами програмування. {

Одна з типових проблем в інтеграціях — дати. * повертати тисячі записів без пагінації;
* передавати зайві поля;
* вкладати занадто багато рівнів;
* дублювати одні й ті самі інформаційні дані;
* не стискати трафік;
* формувати дуже важкі відповіді для дашбордів. "status": "processed",
Це корисно для:
Назва '''JSON''' походить від '''JavaScript Object Notation''', але сьогодні формат давно вийшов за межі [[JavaScript]] і застосовується для майже в усіх сучасних мовах програмування: [[Python]], [[TypeScript]], [[JavaScript]], [[Java]], [[C Sharp|C#]], [[PHP]], [[Go]], [[Rust]] та інших. }
Різні системи можуть передавати дати по-різному:
"method": "card",

У API JSON здатна використовуватися для передачі фільтрів. "required": true

},
"quantity": "багато"
},

JSON швидко читати. Правило print(json_text)

"sku": "NB-001",
"code": "000001",
},

</syntaxhighlight> платформа на Python здатна відправити JSON. * мобільного складу;

  • сервісних заявок;
  • торгових представників;
  • погодження документів;
  • мобільних дашбордів;
  • офлайн-режиму;
  • синхронізації даних;
  • фотофіксації;
  • роботи з файлами.</syntaxhighlight>

API — одна з головних сфер використання JSON.== JSON і мобільні додатки ==

}

{

"id": 15,
"currency": "UAH"

]

</syntaxhighlight>

Основні типи даних у JSON

</syntaxhighlight>

"product_name": "Монітор",

</syntaxhighlight> </syntaxhighlight> {

"required": ["code", "name"],
"code": "000015",

} }

}

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

JSON Schema

"contractor": "ТОВ Приклад"

Помилка

JSON і кодування

як приклад, один користувач системи здатна бачити суму документа, а інший — ні. }

Якщо інформаційні дані мають чітку структуру і активно використовуються у звітах, фільтрах та зв’язках, їх краще зберігати у нормальних таблицях. Без прикладів інтегратор починає ворожити. "quantity": 2,

"amount": 42000

Тест здатна перевірити, що API повернув:

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

"service": "Нова пошта",

}

"price": 8500,

{ JSON простий, але має суворий синтаксис. Це шлях до цифрового горища. { Так платформа знає, до якої сутності прикріплено файл, але сам файл не “запихається” у JSON без потреби. "phone": "+380671234567",

Це інтуїтивно, бо JSON дає можливість передавати структуровані інформаційні дані. }

"password": "123456"

Це робить JSON дуже зручним для інтеграцій. як приклад: Приклад SQL-запиту: { Сучасна українська ERP повинна говорити мовою сучасного світу. YML — для опису того, що платформа має створити.

Приклад JSON виписки:

},

JSON і webhooks

  • обмін даними через API;
  • відповіді backend для frontend;
  • інтеграції із зовнішніми системами;
  • передача документів;
  • синхронізація мобільних додатків;
  • робота з AI-сервісами;
  • обмін із сайтами та інтернет-магазинами;
  • передача налаштувань компонентів;
  • збереження частини службових структур;
  • обмін між модулями;
  • імпорт та експорт даних;
  • логіювання подій;
  • передача фільтрів, параметрів і результатів звітів.Python так само дуже інтуїтивно функціонує з JSON. |-
Чим JSON відрізняється від YML? YML

Не варто використовувати JSON: Дашборди часто отримують інформаційні дані у JSON. "id": "BANK-001",

/api/v1/contractors

JSON у порівнянні з таблицями Excel

Тобто JSON здатна бути транспортним форматом між веб-редактором і backend. | JSON частіше застосовується для для обміну даними, а YML — для декларативного опису моделей, структур і компонентів.

платформа на TypeScript здатна його прийняти. }

"success": false,
"language": "uk",
{
"source": "bank_api",
"code": "000015",

JSON і офлайн-режим

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

</syntaxhighlight>

ERP повинна поводитися з персональними даними обережно. },

"success": false,

}

"event": "customer_order.created",

JSON і експорт даних

"properties": {

{

"code": "MN-001",

JSON зазвичай коротший, легший для читання і простіший для обробки у веб-додатках. Перевага

"contractor_id": 15,