gpt4 book ai didi

json - vala:使用 Json.gobject_serialize 序列化对象属性?

转载 作者:行者123 更新时间:2023-12-02 17:20:18 29 4
gpt4 key购买 nike

我需要将对象的状态保存到文件中并在以后检索它。我发现 JSON 序列化会有所帮助,并找到了这个方法 Json.gobject_serialize。使用此方法,我可以成功序列化包含字符串属性的对象。但是,如果对象 A 由其中的另一个对象(比如 B)组成并且我需要序列化对象 A,我该怎么办。

编辑

如果对象 A 由对象数组(比如 B)组成,我该怎么办?我为此创建了一个小测试程序,但我失败了。我找不到任何关于 vala 的 JSON 序列化的详细文档。

public class Foo : Object {

public int iFoo {get; set;}
public string sFoo {get; set;}

Bar[] _bar = {};
public Bar[] bar {get {return _bar;} set{_bar = value;}}

public class Bar : Object {
public int iBar {get; set;}
public string sBar {get; set;}

construct {
iBar = 02;
sBar = "OutOfRange";
}
}

construct {
_bar += new Bar();

iFoo = 74;
sFoo = "GIrafee";
}

public static int main () {
Json.Node root = Json.gobject_serialize (new Foo());

Json.Generator generator = new Json.Generator ();
generator.set_root (root);
stdout.printf(generator.to_data (null) + "\n");

return 0;
}
}

最佳答案

对于包含复杂类型的属性,JSON-GLib 的序列化是递归的。

如果 GObject 的属性包含另一个 GObject,json_gobject_serialize() 将递归调用存储在属性内的实例上的 json_gobject_serialize() — 或者序列化 null 如果属性未设置。

关于json - vala:使用 Json.gobject_serialize 序列化对象属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43344017/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com