JSON是一种轻量级的数据交换格式。
那么如何在Qt中处理json?首先要知道四个类。
第一个类QJsonDocument;
把JSON格式的字符串转换成JSON对象/数组;或者把JSON对象/数组转换成JSON格式字符串。
第二个类QJsonObject;
处理Json对象,{ }
第三个类QJsonArray;
处理Json数组,[]
第四个类QjsonValue;
可以是字符串、整型、布尔、浮点、json对象、json数组...
1、组织JSON数据写入磁盘
1 QJsonObject obj; //定义空对象 2 QJsonObject sub; 3 sub.insert("IP",QJsonValue("192.168.31.33"));//插入键值对 4 sub.insert("Port",QJsonValue("9999")); 5 obj.insert("server",QJsonValue(sub)); 6 7 QJsonDocument doc(obj); 8 QByteArray data=doc.toJson(); 9 QFile file("tem1.json"); 10 file.open(QIODevice::WriteOnly); 11 file.write(data); 12 file.close();
server:{
IP:192.168.31.33,
Port:9999
}
2、把磁盘中JSON数据加载到内存
1 QFile file("tem.json"); 2 file.open(QIODevice::ReadOnly); 3 QByteArray data = file.readAll(); 4 file.close(); 5 6 QJsonDocument doc =QJsonDocument::fromJson(data); 7 if(doc.isObject()) 8 { 9 QJsonObject obj =doc .object(); 10 QJsonValue value=obj.value("server"); 11 if(value.isObject()) 12 { 13 QJsonObject sub=value.toObject(); 14 QString IP = sub.value("IP").toString(); 15 QString Port = sub.value("Port").toString(); 16 } 17 }