在libjson中确定JSONNode对象类型

时间:2012-11-06 14:41:57

标签: c++ types libjson

我们正在将Json库从JsonCpp切换到libJson。 JsonCpp具有很好的函数来确定json值的对象类型。有没有在libjson中获取此信息的方法?

例如,使用JsonCpp我们有以下内容:

Json::Value property = properties[propertyName.get_utf8()];

if (property.isInt()) 
{
    // Do Something
}
else if (property.isUInt())
{
    // Do Something
}
else if (property.isDouble())
{
    // Do Something
}
else if ( property.isString() )
{
    // Do Something
}

有没有办法确定JSONNode是否有字符串,int或double。我知道你可以获得JSONNode类型,但是你可以获得该节点中值的对象类型。例如,如果我有以下内容:

JSONNode root(JSON_NODE);
node.push_back(JSONNode("", "node"));
node.push_back(JSONNode("", 10));
node.push_back(JSONNode("", 21.5f));
node.push_back(JSONNode("", true));

是否可以确定root中的第一个节点包含一个字符串,第二个节点是int,第三个是float等吗?

1 个答案:

答案 0 :(得分:0)

检查类型似乎是这样做的唯一方法,好吧它不是很准确,因为你只能检查它是否是一个数字,而不是它是否为双精度的int。