我在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