Qt组装Json格式数据

对于Json格式的数据,Qt提供了相当不错的支持,当你用到Json相关的内容时,直接包含以下类即可。QJsonArray、QJsonDocument、QJsonObject、QJsonValue。闲话不多说,上才艺。

// 构造一个单个Json对象
QJsonObject _obj;
_obj.insert("josn_key", QJsonValue("json_value"));
// 构造一个Json数组 以10对Json为例子
QJsonArray _json_array;
for(int _index = 0; _index < 10; _index++)
{
	QJsonObject _temp_obj;
	_temp_obj.insert("json_id", QJsonValue(_index));
	_json_array.append(_temp_obj);
} 
// Json对象插入Json数组
_obj.insert("serial", QJsonValue(_json_array));
QJsonDocument _doc(_obj);		// 构建Json文档
QByteArray _jsonData = _doc.toJson(QJsonDocument::Compact); // Json文档转Json格式的Utf8数据
QNetworkRequest netReq(_url);	// 构建http请求管理
netReq.setHeader(QNetworkRequest::ContentTypeHeader, "application/json;charset=utf-8"); // 设置报文头里的协议
netReq.setRawHeader(QByteArray("custom_header"), QString("test").toUtf8()); // 设置自定义报文头的内容 可设多个
QString test_token = QMessageAuthenticationCode::hash(QString("encode_content").toUtf8(), QString("encode_key").toUtf8(), QCryptographicHash::Sha256).toHex();// 添加token加密 此处以hmacsha256加密方式为例
QNetworkReply *m_pNReply = (new QNetworkAccessManager(this))->post(netReq, _jsonData );

你可能感兴趣的:(个人分享,http,Json,Qt)