qt 操作json与xml

#include "qthread.h";
#include<qjsonobject.h>
#include<QJsonDocument>
#include<qjsonarray.h>
#include<QtXml/qxml.h>;
#include"qfile.h"
#include"QtXml/qdom.h"
#include"qdir.h"

void usbtest::on_btn_json_clicked()
{
	QJsonObject json,addr;
	QJsonArray ja,ja1;

	json.insert("a", QStringLiteral("中国")); //插入key value
	json.insert("b", QStringLiteral("美国"));

	addr.insert("ss", QStringLiteral("广东深圳"));
	addr.insert("bb", QStringLiteral("湖南长沙"));

	json.insert("addr", addr);  //插入 QJsonObject
	//数组
	ja.append("123");
	ja.append(2.34);
	ja.append("666");
	ja.append(false);

	json.insert("array", ja);

	ui.edt_data->append(QString(QJsonDocument(json).toJson())); //转化为QString

	QString aa;
	aa = json.value("a").toString(); //取key  a
	ui.edt_data->append(aa);
	json["a"] = QStringLiteral("法国"); //赋值 key a

	ui.edt_data->append(QString(QJsonDocument(json).toJson()));

	ja1 = json["array"].toArray();

	ui.edt_data->append(QJsonDocument(ja1).toJson());
}


void usbtest::on_btn_xml_clicked()
{
	QFile file("test.xml"); 打开或创建文件
	file.open(QFile::QFile::WriteOnly | QFile::Truncate);

	QDomDocument doc;
	//写入头部
	QDomProcessingInstruction instruction;
	instruction = doc.createProcessingInstruction("xml", "Version=\"1.0\" encoding=\"UTF-8\"");
	doc.appendChild(instruction);
	//添加跟目录
	QDomElement root = doc.createElement("library");
	doc.appendChild(root);
	//添加子节点
	QDomElement book = doc.createElement("book");
	book.setAttribute("id", 1);  //设置属性 方法1
	QDomAttr time = doc.createAttribute("time"); //设置属性 方法2
	time.setValue("2021-01-21");
	book.setAttributeNode(time);

	QDomElement title = doc.createElement("title");
	QDomText text;
	text = doc.createTextNode("c++ primer");

	book.appendChild(title);
	title.appendChild(text);

	root.appendChild(book);
	//输出到文件
	QTextStream out_stream(&file);
	doc.save(out_stream, 4);  //缩进4格
	file.close();




}

猜你喜欢

转载自blog.csdn.net/y281252548/article/details/112957734