Qt读写json文件
写json文件
1 #include "mainwindow.h" 2 #include "ui_mainwindow.h" 3 #include<QJsonDocument> 4 #include<QJsonObject> 5 #include<QJsonArray> 6 #include<QFile> 7 MainWindow::MainWindow(QWidget *parent) : 8 QMainWindow(parent), 9 ui(new Ui::MainWindow) 10 { 11 ui->setupUi(this); 12 //创建json对象 13 QJsonObject obj; 14 QJsonObject sub; 15 sub.insert("ip",QJsonValue("192.168.0.1")); 16 sub.insert("port",QJsonValue("8080")); 17 obj.insert("server",QJsonValue(sub)); 18 19 //内存中的数据写到文件 20 QJsonDocument doc(obj); 21 //将json对象转换成字符串 22 QByteArray data=doc.toJson(); 23 QFile file("temo.json"); 24 file.open(QIODevice::WriteOnly); 25 file.write(data); 26 file.close(); 27 } 28 29 MainWindow::~MainWindow() 30 { 31 delete ui; 32 }
读json文件
1 //打开文件 2 QFile file("C:\\conf.json"); 3 file.open(QIODevice::ReadOnly); 4 QByteArray data=file.readAll(); 5 file.close(); 6 //使用json文件对象加载字符串 7 QJsonDocument doc=QJsonDocument::fromJson(data); 8 //判断是否对象 9 if(doc.isObject()) 10 { 11 //把json文档转换为json对象 12 QJsonObject obj=doc.object(); 13 QJsonValue value=obj.value("server"); 14 if(value.isObject()) 15 { 16 QJsonObject subobj=value.toObject(); 17 //取值 18 QString ip=subobj.value("ip").toString(); 19 QString port=subobj.value("port").toString(); 20 qDebug()<<ip<<port; 21 } 22 }