【问题标题】:Modifying an QJsonArray within a QJsonObject?在 QJsonObject 中修改 QJsonArray?
【发布时间】:2021-01-28 12:17:28
【问题描述】:

如何修改已经存在于 QJsonObject 结构中的数组?

QJsonObject data = QJsonDocument::fromJson(QByteArrayLiteral("{\"array\":[1,2,3]}")).object();

// TODO: Something to append numbers to the 1,2,3 array?

// This doesn't work: 
data["array"].toArray().append(4);

qInfo() << data; // QJsonObject({"array":[1,2,3]}), without the 4th element

toArray() 似乎创建了一个副本而不是返回一个引用

【问题讨论】:

    标签: c++ qt qjsonobject


    【解决方案1】:

    我认为问题在于toArray() 正在返回数组的副本,而不是对现有数组的引用。所以你的代码试图修改副本,这最终没有效果。你应该可以这样做:

    QJsonArray arrayCopy = data["array"].toArray();
    arrayCopy.append(4);
    data["array"] = arrayCopy;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-06
      • 1970-01-01
      相关资源
      最近更新 更多