Описание работы с JSON-Editor

From Wiren Board
Revision as of 12:44, 15 January 2025 by Vitalii.gaponov (talk | contribs) (Удален {{Draft}})

(diff) ← Older revision | Approved revision (diff) | Latest revision (diff) | Newer revision → (diff)


Список страниц по JSON-editor

  1. Введение в веб-конфигурирование wb-rules с помощью JSON-editor
  2. Процесс разработки конфигуратора с JSON-editor
  3. Описание работы с JSON-editor

Описание

Страница описывает правила работы с json-editor.

Общие сведения

JSON Editor использует JSON Schema для генерации HTML форм.

Данный подход разработан для создания WEBUI (пользовательского веб-интерфейса) с настраиваемыми полями, это можно использовать для конфигурации правил wb-rules или других сервисов запущенных на контроллере.

Проект json-editor имеет открытый исходный код, ознакомиться с исходниками и документацией можно в репозитории:

Или на форке Wiren Board:

Описание параметров для JSON-Editor

Типы параметров схемы и другие тонкости описаны на отдельной странице:

Описание простой схемы

Первый уровень всегда должен иметь тип объекта, нельзя использовать другие типы, такие как массив и др.

{
  "type": "object",
  ...
}

Обязательные поля для конфигуратора включают в себя:

  • configFile.path - путь до файла конфигурации куда будут сохранены данные;
  • configFile.service - имя сервиса который будет перезапущен после нажатия кнопки Записать;
  • properties - свойства объекта верхнего уровня, внутри данного объекта нужно добавлять пользовательские свойства;
{
  "configFile": {
    "path": "/etc/test-config.conf",
    "service": "wb-rules"
  },
  "type": "object",
  "title": "Test configuration",
  "description": "Long description configuration",
  "properties": {
    ...Тут описываются пользовательские поля...
  }
}

Переводы

Очень желательной частью файла конфигурации являются переводы.

Переводы добавляются в конец схемы в параметре translations. Переводятся поля: title, description и тд.

Для отображения параметра в схеме используется его значение. В качестве значения может использоваться текст или параметр, описываемый далее в разделе translations.

В данном примере в качестве значения параметра title используется текст MQTT topic name.

"title": "MQTT topic name",

В данном примере в качестве значения параметра title используется параметр mqtt_topic_name. В разделе translations параметру mqtt_topic_name присваиваются значения для en - и ru - интерфейса.

"deviceMqttTopic": {
  "title": "mqtt_topic_name",
  "type": "object",

...
  
"translations": {
  "en": {
    "mqtt_topic_name": "MQTT topic name"
  },
  "ru": {
    "mqtt_topic_name": "Имя MQTT топика"
  }
}

Это удобно, когда нужно изменить наименования параметров или посмотреть какие из параметров имеют перевод.


Навигация

← Назад: Пример разработки конфигуратора с JSON-editor
Страница (4 из 7): Описание работы с JSON-editor
Вперед →: Описание параметров схемы JSON-Editor