c++ - 对 QJsonArray 进行排序

标签 c++ json qt

假设我有一个类型的函数:

bool sortJson(QJsonArray &);

应该对 QJsonArray 进行排序(并返回真)如果所有成员都是 double .我知道我可以建立一个辅助 QVector , 遍历 QJsonArray并测试 isDouble() 的每个元素, 并附加到 QVector , 最后对 QVector 进行排序,再次遍历它,并插入回 QJsonArray .

有没有更好的方法在 QJsonArray 之间进行转换?和 QVector<dobule> ?或者,这些类型是否有短函数?

bool jsonToVector(const QJsonArray&, QVector<double>&);
bool vectorToJson(const QVector<double>&, QJsonArray&);

最佳答案

我不相信有这样的功能,但你如何定义一个项目是双重的?

如果你有 { 0.0, 1, 2.2 },是:-

  • {float, int, double} 的列表
  • {double, int, double} 的列表
  • 3次 double
  • 3个花车

我想说所有可能都是真的,因为 JSON 只是一种文本表示。如果您只想检查它是否可以转换为 double ,那么您可以将 JsonArray 转换为 QVariantList 并检查每个项目是否可以转换为 double

QVariantList varList = jsonArray.toVariantList();
foreach(QVariant item, varList)
{
    bool bOk;
    item.toDouble(&bOk);
    if(bOk)
    {
        // item can be converted to a double
    }
}

无论你选择哪种方法,我都不相信有一个快速函数可以直接对json数组进行排序。

关于c++ - 对 QJsonArray 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26148392/

相关文章:

c++ - 当返回类型是引用时有什么规则

javascript - 单击按钮加载新的 json url 并更新 Angular 中的 View

QTextStream atEnd() 在开始读取文件时返回 true

c++ - Qt:如何访问 WebKit 页面上的实际小部件?

c++ - 用于读取矩阵 C++ 的宏

c++ - visual studio 中的 __OPTIMIZE__ 是什么

javascript - json响应,读取数据

javascript - 使用 jquery 在表中使用 Json 变量

qt - 如何将 QML 文件组织到嵌套文件夹中?

c++ - 如何从 QString 中删除反斜杠?