JSON
}
"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: {
як ілюстрація:
},
[[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 ==
{
}
"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 і продуктивність
"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
- Сайт K2 ERP
- Wiki K2 ERP
- хмарна інфраструктура K2 ERP
- Telegram-канал K2 ERP
- Група обговорення функціоналу та пропозицій
- LinkedIn K2
},
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`, платформа оперативно втрачає контроль над структурою.; * для передачі моделі з веб-редактора на сервер;
</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"
</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", Погана практика. Поле |
Пагінація списків | Великі списки не треба повертати одним нескінченним 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 не має змогу жити ізольовано.; * сайти;
}, "id": 101, "total_amount": 89500 Вкладені структури} <name>Ноутбук Lenovo</name> "type": "string" </syntaxhighlight> "local_id": "tmp-001", Тобто ER-модель описує структуру, а JSON передає інформаційні дані цієї структури.; } платформа на Python має змогу відправити JSON.; Тип </syntaxhighlight> як ілюстрація, якщо API повертає JSON контрагента: JSON і XMLJSON і 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", Недоліки JSON14.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 і створити або оновити номенклатуру.;</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';
|
Не замінює модель даних | 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": "щось",
|
Чи застосовується JSON у K2 ERP?;</syntaxhighlight>
Не вимагати від усіх вивчати внутрішню мову старої системи.; * JSON — для обміну даними;
"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": {
"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, { |
|---|