检查对象是否为布尔值
Check if object is a boolean
我需要检查我的 Json.Object 是否是布尔值。这就是我所做的:
var media = root.get_member ("media");
if (!media.get_value_type ().is_a (bool)) {
this.media.set ("mp4", media.get_object ().get_string_member ("mp4"));
this.media.set ("webm", media.get_object ().get_string_member ("webm"));
}
JSON 看起来像这样:
"media": {
"mp4": "http:\/\/img-9gag-fun.9cache.com\/photo\/EyVtjpq_460sv.mp4",
"webm": "http:\/\/img-9gag-fun.9cache.com\/photo\/EyVtjpq_460svwm.webm"
},
如果是布尔值,则像这样:
"media": false,
但是这个条件不行!media.get_value_type ().is_a (bool)
,方法is_a ()
显然不能用bool
。如何检查我的值是否为布尔值?
应该是这样的:
if (media.get_value_type () != typeof(bool))
你可以用typeof ()
得到Vala中任何数据类型的GType
,GType
就是函数returns.
https://wiki.gnome.org/Projects/Vala/FAQ#How_do_I_get_the_GType_for_something.3F
https://developer.gnome.org/json-glib/stable/json-glib-JSON-Node.html#json-node-get-value-type
在 C 中你可能会使用 G_TYPE_BOOLEAN
:
https://developer.gnome.org/gobject/stable/gobject-Type-Information.html#G-TYPE-BOOLEAN:CAPS
我需要检查我的 Json.Object 是否是布尔值。这就是我所做的:
var media = root.get_member ("media");
if (!media.get_value_type ().is_a (bool)) {
this.media.set ("mp4", media.get_object ().get_string_member ("mp4"));
this.media.set ("webm", media.get_object ().get_string_member ("webm"));
}
JSON 看起来像这样:
"media": {
"mp4": "http:\/\/img-9gag-fun.9cache.com\/photo\/EyVtjpq_460sv.mp4",
"webm": "http:\/\/img-9gag-fun.9cache.com\/photo\/EyVtjpq_460svwm.webm"
},
如果是布尔值,则像这样:
"media": false,
但是这个条件不行!media.get_value_type ().is_a (bool)
,方法is_a ()
显然不能用bool
。如何检查我的值是否为布尔值?
应该是这样的:
if (media.get_value_type () != typeof(bool))
你可以用typeof ()
得到Vala中任何数据类型的GType
,GType
就是函数returns.
https://wiki.gnome.org/Projects/Vala/FAQ#How_do_I_get_the_GType_for_something.3F
https://developer.gnome.org/json-glib/stable/json-glib-JSON-Node.html#json-node-get-value-type
在 C 中你可能会使用 G_TYPE_BOOLEAN
:
https://developer.gnome.org/gobject/stable/gobject-Type-Information.html#G-TYPE-BOOLEAN:CAPS