Описание работы с JSON-Editor
Список страниц по JSON-editor
- Введение в веб-конфигурирование wb-rules с помощью JSON-editor
- Процесс разработки конфигуратора с JSON-editor
- Описание работы с JSON-editor
Описание
Страница описывает правила работы с json-editor.
Общие сведения
JSON Editor использует JSON Schema для генерации HTML форм.
Данный подход разработан для создания WEBUI (пользовательского веб-интерфейса) с настраиваемыми полями, это можно использовать для конфигурации правил wb-rules или других сервисов запущенных на контроллере.
Проект json-editor имеет открытый исходный код, ознакомиться с исходниками и документацией можно в репозитории:
- Git repo: json-editor/json-editor
Или на форке Wiren Board:
- Git repo: wirenboard/json-editor
Описание параметров для 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