JSON

Введение

В NocoBase поле JSON(JSON) используется для хранения структурированных или полуструктурированных данных.

Поле JSON подходит для хранения фрагментов ответов внешних API, расширенных настроек, динамических атрибутов и других данных с нестабильной структурой. Оно гибкое, но его сложнее фильтровать, проверять и отображать, чем обычные поля.

Если структура поля стабильна, рекомендуется разбить его на отдельные явные поля, чтобы упростить настройку страниц, управление правами, фильтрацию и использование в рабочих процессах.

Сценарии использования

JSON подходит для следующих бизнес-сценариев:

  • Исходные ответы внешних API
  • Динамические дополнительные атрибуты
  • Сложные объекты конфигурации
  • Временное хранение данных, которые невозможно разделить на структурированные поля

Создание и настройка

На странице «Configure fields» таблицы данных нажмите «Add field» и выберите «JSON», чтобы создать поле JSON.

20240512173905

НастройкаОписание
Field interfaceТип интерфейса поля. Для JSON соответствует json и определяет способ ввода и отображения данных на странице.
Field display nameНазвание поля, отображаемое в интерфейсе, например «Дополнительная информация», «Ответ API» или «Конфигурация». Рекомендуется использовать понятное бизнес-пользователям название.
Field nameИдентификатор поля, используемый для внутренних ссылок в API, полях связей, правах доступа, рабочих процессах и других функциях. После создания обычно не изменяется; допускаются только буквы, цифры и символы подчёркивания, причём имя должно начинаться с буквы.
Field typeТип поля на уровне данных. Для полей JSON обычно используются json или jsonb.
Default valueЗначение по умолчанию. При создании записи оно автоматически подставляется, если пользователь не ввёл значение.
Validation rulesПравила проверки. Обычно проверяется корректность JSON или обязательность заполнения.
DescriptionОписание поля. Здесь можно указать назначение поля, требования к заполнению, источник данных или ответственного за обслуживание.
Внимание

После создания имя поля будет использоваться блоками страниц, правами доступа, рабочими процессами и API. Перед созданием проверьте имя, чтобы избежать дополнительных затрат на изменение конфигурации в дальнейшем.

Свойства поля

Поле JSON по умолчанию имеет следующие свойства:

СвойствоОписание
Стандартный Field interfacejson.
Стандартный Field typejson.
Доступный Field typejson, jsonb — в зависимости от возможностей базы данных.
Компонент страницыВ режиме редактирования используется компонент редактирования JSON или компонент ввода текста.
ФильтрацияВозможность фильтрации зависит от базы данных и сопоставления полей; обычно поле не используется как основной критерий фильтрации.
СортировкаОбычно не используется для сортировки.
ПроверкаПоддерживается проверка корректности JSON, обязательности заполнения и другие проверки.

Редактирование настроек

После создания нажмите «Edit» справа от поля, чтобы изменить настройки поля JSON. Редактирование поля в основном используется для настройки его отображения и способа использования в NocoBase, например для изменения отображаемого имени, описания, значения по умолчанию, правил проверки или специальных настроек поля.

Если поле поступает из таблицы, уже синхронизированной с основной базой данных, то при редактировании обычно выполняется сопоставление полей — поле базы данных сопоставляется с Field type и Field interface в NocoBase.

НастройкаМожно редактироватьОписание
Field display nameДаИзменяет отображаемое в интерфейсе имя поля, не изменяя его идентификатор.
Field nameНетИдентификатор поля обычно нельзя изменить в форме редактирования после создания.
Field interfaceПри определённых условияхДля полей основной базы данных или синхронизированных полей его можно изменить при сопоставлении. Это повлияет на способ ввода, отображения и проверки данных на страницах.
Field typeПри определённых условияхДля полей основной базы данных или синхронизированных полей его можно изменить при сопоставлении. Перед изменением необходимо убедиться, что существующие данные можно использовать с новым типом.
Default valueДаИзменяет значение по умолчанию для новых записей.
Validation rulesДаИзменяет правила проверки поля.
DescriptionДаДополняет информацию о назначении поля, требованиях к заполнению, источнике данных или ответственном за обслуживание.
Внимание

Переключение Field type или Field interface — это не просто изменение отображаемого имени. Оно влияет на способ хранения данных, компонент ввода, правила проверки, условия фильтрации и способ использования переменных в рабочих процессах. Если данных уже много, сначала убедитесь, что их формат соответствует новому типу.

Удаление поля

Нажмите «Delete» справа от поля, чтобы удалить поле JSON. В основной базе данных также можно выбрать несколько полей и удалить их одновременно.

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

Предупреждение

Удаление поля может повлиять на блоки страниц, формы, фильтрацию, права доступа, рабочие процессы, API, импорт и экспорт, а также существующие данные. Перед удалением убедитесь, что поле больше не используется в бизнес-конфигурациях.

Использование в настройках страниц

Поле JSON подходит для сценариев интеграции и расширенной конфигурации. 20260710151854

СценарийНазначение
Блок формыВвод или редактирование данных JSON.
Блок подробной информацииОтображение структурированного содержимого.
Рабочий процессСохранение или чтение фрагментов, возвращаемых внешним API.
APIПередача или возврат в качестве расширенного объекта.

Связанные ссылки

  • Поля — сведения о назначении, категориях и логике сопоставления полей
  • Обычная таблица — создание и управление полями в обычной таблице
  • Многострочный текст — сохранение длинного текста без форматирования
  • Формула — вычисление результатов на основе полей