我在GSettings中存储了一个类型为a(ss)
的GVariant的数组,我想在Cinnamon Applet中使用该数组。我可以使用以下代码成功检索值:在javascript中解压缩GVariant
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
类型的变量,并保持它们的一致性,但必须有一种方法来正确地做到这一点,对吧?
谢谢你 - 我会尽快检查出来并回复你:) – simon
适合我! - 请问你在哪里找到这条信息?在[官方文档](https://developer.gnome.org/glib/stable/glib-GVariant.html)中我找不到一个名为'unpack()'的方法。 – JayStrictor