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