C++ uses rapidjson to read and write json data

1. Background

Introduction and use of RapidJSON_fengbingchun's blog-CSDN blog 

rapidjson is Tencent's efficient C++ Json parser. It only has header files and can be used across platforms.

mirrors / Tencent / rapidjson · GitCode

2. Read data

Use rapidjson to parse and assemble json_youyicc's blog-CSDN blog

 

3. Write data

#include "rapidjson/document.h"
#include "rapidjson/error/en.h"
#include "rapidjson/stringbuffer.h"
#include "rapidjson/writer.h"
#include "rapidjson/istreamwrapper.h"
#include "rapidjson/prettywriter.h"

//通过rapidjson生成json数据
QString QosMonitor::generateJsonDataByRapidJson(dataInfo& data) {
	rapidjson::StringBuffer json;
	rapidjson::PrettyWriter<rapidjson::StringBuffer> writer(json);
	try {
		writer.StartObject();

		writer.String("500001");
		writer.StartArray();
		writer.StartObject();
		writer.String("name");
		writer.String(data.name.toStdString().c_str());
		writer.String("endpoint");
		writer.String(data.endpoint.toStdString().c_str());
		writer.String("remoteMac");
		writer.String(data.remoteMac.toStdString().c_str());
		writer.String("loginTime");
		writer.String(data.loginTime.toStdString().c_str());
		writer.String("logonNum");
		writer.String(data.logonNum.toStdString().c_str());
		writer.String("logonLimit");
		writer.String(data.logonLimit.toStdString().c_str());
		writer.String("compressTag");
		writer.String(data.compressTag.toStdString().c_str());
		writer.String("iceBzip2");
		writer.String(data.iceBzip2.toStdString().c_str());
		writer.String("messageNum");
		writer.String(data.messageNum.toStdString().c_str());
		writer.String("messageSize");
		writer.String(data.messageSize.toStdString().c_str());

		writer.String("speed");
		writer.String(data.speed.toStdString().c_str());
		writer.String("maxSpeed");
		writer.String(data.maxSpeed.toStdString().c_str());
		writer.String("mps");
		writer.String(data.mps.toStdString().c_str());
		writer.String("maxMps");
		writer.String(data.maxMps.toStdString().c_str());

		writer.String("type");
		writer.String(data.type.toStdString().c_str());
		writer.String("location");
		writer.String(data.location.toStdString().c_str());

		writer.EndObject();
		writer.EndArray();

		writer.EndObject();
	}
	catch (...) {}

	QFile file("../../binx64/release/2.json");
	file.open(QIODevice::WriteOnly);
	// 将json以文本形式写入文件并关闭文件。
	file.write(json.GetString());
	file.close();


	//把json数据转为QString
	QString s = QString(json.GetString());
	return s;
}

 

 

 

Guess you like

Origin blog.csdn.net/ljjjjjjjjjjj/article/details/131653715