Json-glib 在使用 gobject_serialize 时序列化一个值为 false 的布尔值
Json-glib serialize a boolean with value false when using gobject_serialize
我正在尝试序列化下面的 class:
public class Person : GLib.Object {
public string name { get; set; }
public int age { get; set; }
public bool alive { get; set; }
public Person (string name, int age, bool alive = true) {
Object (
name: name,
age: age,
alive: alive
);
}
}
public int main () {
var person = new Person ("mike", 33, false);
var node = Json.gobject_serialize (person);
string obj = Json.to_string (node, true);
print (obj+"\n");
return 0;
}
虽然我希望输出是...
{
"name": "mike",
"age": 32,
"alive": false
}
我正在……
{
"name": "mike",
"age": 32
}
即使值为 false,如何序列化布尔值?
json-glib 的默认序列化函数不会序列化包含默认值的 属性。对于布尔属性,这是 false
,除非另有明确说明。
为确保在这种情况下确实发生序列化,您应该自己显式实现 Serializable.serialize_property()
方法。
我正在尝试序列化下面的 class:
public class Person : GLib.Object {
public string name { get; set; }
public int age { get; set; }
public bool alive { get; set; }
public Person (string name, int age, bool alive = true) {
Object (
name: name,
age: age,
alive: alive
);
}
}
public int main () {
var person = new Person ("mike", 33, false);
var node = Json.gobject_serialize (person);
string obj = Json.to_string (node, true);
print (obj+"\n");
return 0;
}
虽然我希望输出是...
{
"name": "mike",
"age": 32,
"alive": false
}
我正在……
{
"name": "mike",
"age": 32
}
即使值为 false,如何序列化布尔值?
json-glib 的默认序列化函数不会序列化包含默认值的 属性。对于布尔属性,这是 false
,除非另有明确说明。
为确保在这种情况下确实发生序列化,您应该自己显式实现 Serializable.serialize_property()
方法。