translator, wb_editors
4444
правки
Brainroot (обсуждение | вклад) |
Matveevrj (обсуждение | вклад) |
||
Строка 1549: | Строка 1549: | ||
}); | }); | ||
})() | })() | ||
</syntaxhighlight> | |||
==Работа с JSON== | |||
Движок wb-rules поддерживает стандартные функции языка JavaScript для работы с JSON: | |||
*<code>JSON.stringify()</code> — преобразует объект в JSON-строку; | |||
*<code>JSON.parse()</code> — преобразует JSON-строку в объект. | |||
Более подробную информацию о функциях можно найти в учебнике [https://learn.javascript.ru/json JavaScript]. | |||
Эти функции требуются, когда вы получаете данные из другого сервиса в JSON-формате. | |||
В приведенном примере создается виртуальное устройство с одной кнопкой и числовым параметром, который который хранится в виде JSON-строки. При нажатии на кнопку к значению параметра прибавляется 1. | |||
<syntaxhighlight lang="bash"> | |||
defineVirtualDevice("JSON_test", { | |||
title: "JSON_device", | |||
cells: { | |||
Button: { | |||
type: "pushbutton", | |||
value: false | |||
}, | |||
Json: { | |||
type : "text", | |||
value : JSON.stringify({param: 0}), | |||
}, | |||
} | |||
}); | |||
defineRule("change_value", { | |||
whenChanged: "JSON_test/Button", | |||
then: function () { | |||
parameter = JSON.parse(dev["JSON_test/Json"]); | |||
parameter.param++; | |||
dev["JSON_test/Json"] = JSON.stringify(parameter) | |||
} | |||
}); | |||
</syntaxhighlight> | </syntaxhighlight> | ||
== Полезные ссылки == <!--T:190--> | == Полезные ссылки == <!--T:190--> |