比如说想在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);
}
}
用QJson做,.QJsonObject:代表一个Json对象,包含多个键-值对;
2.QJsonArray:代表一个Json数组,可用下标的方法遍历,具体的值可为QJsonValue类型;
3.QJsonValue:代表具体的值,值可以是QJsonObject,也可以是QJsonArray(可用isObject()和isArray()方法来判断),或者其他类型;
4.QJsonDocument:提供读写一个Json文档的方法,可以返回QJsonObject或QJsonArray,可用isObject()和isArray()方法来判断;
5.QJsonParseError:存储解析Json过程中出现的错误。
望采纳,不懂的可以关注私信我。
将文件的json数据读进来然后格式化为QJsonObject,找到你的key,然后插入数据,再格式化成文本,写回去就行了
https://sourceforge.net/projects/libjson/
使用libjson库解析吧,学会以后在c或者c++环境下都可以使用,不局限在qt了