我想将数据存储在JSON文件中,例如:

{
    "plottingData": [
        {
            "min": 17,
            "max": 35,
            "mean": 20

        },
        {
            "min": 7,
            "max": 35,
            "mean": 17
        },
        {
            "min": 8,
            "max": 50,
            "mean": 29
        }

    ]
}

如何创建此结构?
我曾经使用过QJsonObject,但是无法像这样添加QJsonArray。

最佳答案

从Qt文档中:

QJsonArray plot_array;

// use initializer list to construct QJsonObject
auto data1 = QJsonObject(
{
qMakePair(QString("min"), QJsonValue(17)),
qMakePair(QString("max"), QJsonValue(35)),
qMakePair(QString("mean"), QJsonValue(20))
});

plot_array.push_back(QJsonValue(data1));

// Or use insert method to create your QJsonObject
QString min_str("min");
QString max_str("max");
QString mean_str("mean");
for(auto item : your_collection)
{
    QJsonObject item_data;

    item_data.insert(min_str, QJsonValue(item.min));
    item_data.insert(max_str, QJsonValue(item.max));
    item_data.insert(mean_str, QJsonValue(item.mean));

    plot_array.push_back(QJsonValue(item_data));
}

QJsonObject final_object;

final_object.insert(QString("plottingData"), QJsonValue(plot_array));

09-25 17:09