добавить QJsonObjects в QJsonArray

Я пытаюсь создать файл json, в который я вставляю объекты QjsonObject только в один массив QJsonArray. Я получаю, что каждый объект QjsonObject находится в независимом массиве QJsonArray, но я хочу, чтобы они были в одном массиве.

эта функция вызывается каждый раз, когда нажимается кнопка сохранения, и так создаются мои объекты QJsonObject.

void List::insertDefect(const QString &parentDefect,const QString &defect,const QString &positions)const{
QString filename =createListDefect();
QFile file(filename);
file.open(QIODevice::Append | QIODevice::Text);
QJsonObject defectObject;
defectObject.insert("parentDefect", QJsonValue::fromVariant(parentDefect));
defectObject.insert("defect", QJsonValue::fromVariant(defect));
defectObject.insert("positions", QJsonValue::fromVariant(positions));
QJsonArray listArray;
listArray.push_back(defectObject);
QJsonDocument doc(listArray);
file.write(doc.toJson(QJsonDocument::Indented));}

и вот пример сгенерированного файла JSON:

[
{
"defect": "MISSING, DAMAGED",
"parentDefect": "SEAT BELTS",
"positions": "F | RB | "}
]
[
{
"defect": "RIGIDITY,CORROSION,DISTORTION",
"parentDefect": "CHASSIS OR SUB-FRAME",
"positions": "B | RC | RB | "}
]

и я пытаюсь сделать так, чтобы это выглядело так:

[
{
"defect": "MISSING, DAMAGED",
"parentDefect": "SEAT BELTS",
"positions": "F | RB | "},{
"defect": "RIGIDITY,CORROSION,DISTORTION",
"parentDefect": "CHASSIS OR SUB-FRAME",
"positions": "B | RC | RB | "}
]

0

Решение

Вы создаете QJsonArray listArray; как локальная переменная внутри метода, таким образом, переменная массива уничтожается после каждого вызова метода, и каждый объект сохраняется в отдельном новом массиве, необходимо создать массив вне метода, чтобы он сохранялся во всех вызовах, а затем добавлять объекты к нему и обновите документ.

QJsonArray listArray;

void List::insertDefect()
....
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]