JsonCpp如何std :: sort一个Json :: Value这是一个数组

时间:2014-07-11 20:43:04

标签: c++ json sorting jsoncpp

我想使用与std :: sort()类似的东西对Json :: Value进行排序(使用dicts),但是在尝试使用这样的自定义排序函数时出现错误:

bool sort_json_array(Json::Value a, Json::Value b)
{
    return a["some_double_member"].asDouble() > b["some_double_member"].asDouble();
}

我正在调用std :: sort,如下所示:

std::sort(json_array.begin(), json_array.end(), sort_json_array);

但是这会产生一些我不理解的错误,都类似于:

no match for ‘operator-’ (operand types are ‘Json::ValueIterator’ and ‘int’)

如何对Json数组进行排序?

1 个答案:

答案 0 :(得分:0)

我选择的解决方案是创建一个新的空向量,然后迭代Json数组,将每个元素插入到向量中。然后我使用上面问题中的sort_json_array()来对std :: sort()编辑向量(除了我将其更改为采用Jarod42建议的const引用)。谢谢你的帮助!