在 jsoncpp 中区分 int 和 uint 类型


我想在使用区分

intuint数据类型的jsoncpp读取数据后解析一些json数据。

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

此处列出了有效的jsoncpp类型。我像这样检查类型:

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

仅执行int案例。

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

值不适合int时,jsoncpp 会使用 unsigned int

您可以尝试使用类似 INT_MAX + 1 的值。

最新更新