мы переключаем 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 и т. Д.?
Проверка типа, по-видимому, является единственным способом сделать это, хорошо, но это не очень точно, поскольку вы можете только проверить, является ли это число, но не является ли оно целым числом типа double.
Других решений пока нет …