当我询问rapidjson::Value
使用GetType()
方法的类型时,它只返回以下类型:
//! Type of JSON value
enum Type {
kNullType = 0, //!< null
kFalseType = 1, //!< false
kTrueType = 2, //!< true
kObjectType = 3, //!< object
kArrayType = 4, //!< array
kStringType = 5, //!< string
kNumberType = 6 //!< number
};
如您所见,没有这样的kIntType
也不kDoubleType
(甚至kUintType
,kInt64Type
)因此,我无法获得 的实际值rapidjson::Value
。
例如:
if (value.GetType() == rapidjson::kNumberType)
{
double v = value.GetDouble() // this?
unsigned long v = value.GetUInt64() // or this??
int v = value.GetInt() // or this?
}
无论如何要区分实际的数字类型吗?
谢谢。