在 QJsonArray 中追加 QJsonObjects
append QJsonObjects in a QJsonArray
我正在尝试创建一个 json 文件,在其中我将 Qjson 对象插入到唯一的一个 QJsonArray 中,我得到的是每个 Qjson 对象都在一个独立的QJsonArray 但我希望它们在同一个数组中。
每次单击保存按钮时都会调用此函数,这就是我的 QJsonObjects 的创建方式。
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 | "
}
]
您正在创建 QJsonArray listArray;
作为方法内部的局部变量,因此每次调用该方法后都会销毁数组变量,并且每个对象都存储在单独的新数组中,您必须在外部创建数组方法,使其在所有调用中持续存在,然后向其添加对象并更新文档。
QJsonArray listArray;
void List::insertDefect()
....
我正在尝试创建一个 json 文件,在其中我将 Qjson 对象插入到唯一的一个 QJsonArray 中,我得到的是每个 Qjson 对象都在一个独立的QJsonArray 但我希望它们在同一个数组中。
每次单击保存按钮时都会调用此函数,这就是我的 QJsonObjects 的创建方式。
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 | "
}
]
您正在创建 QJsonArray listArray;
作为方法内部的局部变量,因此每次调用该方法后都会销毁数组变量,并且每个对象都存储在单独的新数组中,您必须在外部创建数组方法,使其在所有调用中持续存在,然后向其添加对象并更新文档。
QJsonArray listArray;
void List::insertDefect()
....