gpt4 book ai didi

rapidjson - 我可以在rapidjson中区分Integer和Double类型吗

转载 作者:行者123 更新时间:2023-12-01 09:54:59 26 4
gpt4 key购买 nike

当我使用 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
};

如您所见,没有这样的 kIntTypekDoubleType (甚至 kUintTypekInt64Type )因此,我无法获得 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?
}

反正有没有区分实际的数字类型?

谢谢。

最佳答案

有:

  • bool Value::IsInt() const
  • bool Value::IsUint() const
  • bool Value::IsInt64() const
  • bool Value::IsUint64() const
  • bool Value::IsDouble() const

  • 请注意,1-4 并不相互排斥。例如,值 123 将使 1-4 返回 true 但 5 将返回 false 。当 GetDouble() 或 1-5 是 IsNumber() 时,调用 true 总是没问题的,尽管当值实际上是 64 位(无符号)整数时可能会损失精度。

    http://miloyip.github.io/rapidjson/md_doc_tutorial.html#QueryNumber

    关于rapidjson - 我可以在rapidjson中区分Integer和Double类型吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30009174/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com