使用JsonCpp的Object对象,若Key为数值类型且想要按照Key数值类型顺序输出,则需要修改部分代码,如下:
//找到jsoncpp.cpp的getMemberNames函数,在return members之前添加如下代码
std::sort(members.begin(), members.end(),
[](const std::string &a, const std::string &b)
{
auto isIntViaStringStream = [](const std::string &str)
{
std::istringstream iss(str);
int val;
char leftover;
// 尝试读取 int,并检查是否有多余字符(非空格)
return (iss >> val) && !(iss >> leftover);
};
if (isIntViaStringStream(a) && isIntViaStringStream(b))
return std::stoi(a) < std::stoi(b);
else
return a < b;
});