我在 GSettings 中有一个存储为 GVariant 类型a(ss)
的数组,我想在 Cinnamon Applet 中使用它。我可以使用以下代码成功检索该值:
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
-type 变量,并保持它们对齐,但是必须有一种方法可以正确地做到这一点,对吧?