JSON
"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 некоректним. "payment": {
], Тут `payload` — поле типу JSONB, а `status` — значення всередині JSON.</syntaxhighlight> JSON виступає як одним із головних форматів, який дає можливість всім цим частинам говорити між собою. Пояснення JSON і TypeScript"quantity": 5
JSON — текстовий формат представлення та обміну даними. Відповідь "limit": 50, "fields": [ </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 і GraphQLJSON здатна використовуватися для передачі екземплярів цих сутностей. "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, {
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. * мобільного складу;
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
|
Чим JSON відрізняється від YML? YML
Не варто використовувати JSON: Дашборди часто отримують інформаційні дані у JSON. "id": "BANK-001", /api/v1/contractors JSON у порівнянні з таблицями Excelплатформа на 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, |