Определить тип объекта JSONNode в 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));

Можно ли определить, что первый узел в корне содержит строку, второй int, третий float и т. Д.?

1 ответ

Решение

Проверка типа, по-видимому, является единственным способом сделать это, хорошо, но это не очень точно, поскольку вы можете только проверить, является ли оно числом, но не является ли оно целым числом типа double.

Другие вопросы по тегам