0

我们正在将 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 等?

4

1 回答 1

0

检查类型似乎是这样做的唯一方法,好吧它不是很准确,因为您只能检查它是否是数字,但不能检查它是否是 double 的 int。

于 2012-11-07T15:40:51.703 回答