jsoncpp中区分int和uint类型

Differentiate between int and uint type in jsoncpp

我想在使用 jsoncpp 读取一些 json 数据后对其进行解析,这区分了 intuint 数据类型。

我很清楚这些类型的含义,但是当我读取像 value: 7 这样的数据时,jsoncpp 将其识别为 int。当然,value 在不同的情况下也可能是负数,但是如果 jsoncpp 只知道当前的情况,为什么它不将 value 解析为 uint

列出了 jsoncpp 种有效类型 here。我这样检查类型:

switch(root->type()) {
    case Json::intValue:    serializeInt(root->asInt(), key);       break;
    case Json::uintValue:   serializeUInt(root->asUInt(), key);     break;

只执行了int个案例。

所以我的问题基本上是,我如何在 json 中表达一个值为 unsigned 以便 jsoncpp 像这样解析它?

jsoncpp 在值不适合 int 时使用 unsigned int

您可以尝试使用像 INT_MAX + 1 这样的值。