gpt4 book ai didi

c++ - 对 QJsonArray 进行排序

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:21:09 25 4
gpt4 key购买 nike

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

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com