У меня есть массив, хранящийся как GVariant типа a(ss)
в GSettings, который я хочу использовать в апплете Cinnamon. Я могу успешно получить значение, используя следующий код:
let schema = schema_source.lookup(SCHEMA_NAME, false);
let settings = new Gio.Settings({ settings_schema: schema });
let my_value = settings.get_value('myvalue');
но не могу распаковать. Насколько я понимаю, мне, вероятно, потребуется распаковать его с помощью структуры GVariantIter
, но документация ограничена, и я не могу найти правильный интерфейс в gjs API (если он действительно существует). кто нибудь знает как это сделать?
Спасибо!
изменить: моя схема выглядит так:
<key type="a(ss)" name="myvalue">
<default>[]</default>
<summary>an array of (string, string) tuples</summary>
<description></description>
</key>
В настоящее время я использую внешний файл JSON
для хранения настроек, но это не на 100% удовлетворительное решение. Я полагаю, что мог бы поддерживать две переменные типа as
и поддерживать их выравнивание, но должен быть способ сделать это правильно, верно?