比如说想在USER里增加一个“456”:[.......]
应该怎么做?
{
"USER":{
"123":[
{
"associatedac":"",
"character":"交易员",
"operator":"123",
"password":"123",
"status":"正常",
"username":"123"
}
],
"232":[
{
"associatedac":"",
"character":"交易员",
"operator":"234",
"password":"234",
"status":"正常",
"username":"234"
}
]
},
"ACCOUNT":{
"123":[
{
"accountcode":"",
"productname":"交易员",
"producttype":"123",
"status":"123"
}
],
"232":[
{
"accountcode":"",
"productname":"交易员",
"producttype":"234",
"status":"234"
}
]
}
}
代码不知道怎么写
int RWJson::writeJson(const QStringList& record,charttype type)
{
// 写Json:先根据传参找type字段,get到所有的object,找匹配段并更改,若不存在则插入一条新的记录
QFile file(SAVE_PATH);
if(!file.open(QIODevice::ReadWrite)) {
qDebug() << "File open error";
} else {
qDebug() <<"File open!";
}
QString jsonvalue = file.readAll();
QJsonParseError parseJsonErr;
QJsonDocument document = QJsonDocument::fromJson(jsonvalue.toLocal8Bit(), &parseJsonErr);
if (!(parseJsonErr.error == QJsonParseError::NoError))
{
//QMessageBox::about(NULL, "提示", "配置文件错误!");
qDebug()<<"parseJson:"<<parseJsonErr.errorString();
}
QJsonObject obj = document.object();
QJsonDocument jdoc;
QJsonObject trecord;
QJsonArray arr;//一条记录,是字段的和集
QJsonObject member;//每个字段
if(obj.contains("USER") && type==USER)
{
QJsonValue value = obj.value("USER");
QJsonObject objuser = value.toObject();
member.insert( "username",record[0]);/*"username",*/
member.insert( "associatedac",record[1]);/*"associatedac",*/
member.insert( "character",record[2]);/*"character",*/
member.insert( "status",record[3]);/*"status",*/
member.insert( "operator",record[4]);/*"operator",*/
member.insert( "password",record[5]);/*"password",*/
arr.append(member);
objuser[record[0]]=arr;
jdoc.setObject(trecord);
}
if(obj.contains("ACCOUNT") && type==ACCOUNT)
{
QJsonValue value = obj.value("ACCOUNT");
QJsonObject objac = value.toObject();
member.insert("accountcode", record[0]);
member.insert("productname", record[1]);
member.insert("producttype", record[2]);
member.insert("status", record[3]);
arr.append(member);
objac[record[0]]=arr;
jdoc.setObject(trecord);
}
}