检查对象是否是布尔值

时间:2016-05-31 04:33:51

标签: json glib rtti vala

我需要检查我的Json.Object是否是布尔值。这就是我所做的:

library(dplyr)
df %>% group_by(Equipmentnumber) %>% arrange(Raw, desc = T) %>% top_n(100)

JSON看起来像这样:

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"));
}

或者喜欢这个,如果它是布尔值:

"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 ()。如何检查我的值是否为布尔值?

1 个答案:

答案 0 :(得分:1)

应该是这样的:

if (media.get_value_type () != typeof(bool))

您可以使用typeof ()获取Vala中任何数据类型的GTypeGType是函数返回的内容。

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