1.封装变量到json中且多层嵌套
包含头文件
#include "rapidjson/document.h"
#include "rapidjson/error/en.h"
#include "rapidjson/prettywriter.h"
#include "rapidjson/writer.h"
#include "rapidjson/stringbuffer.h"
topic_是string类型
Document doc;
doc.SetObject();
Document::AllocatorType &allocator=doc.GetAllocator(); //获取分配器
rapidjson::Value topic_;
topic_.SetString( topic.c_str() , topic.length() , allocator ) ;
doc.AddMember("topic", topic_, allocator);
rapidjson::Value object(rapidjson::kObjectType) ; //第二层嵌套
rapidjson::Value info_object(rapidjson::kObjectType); //第三层嵌套
info_object.SetObject();
deviceId_.SetString( m_sDeviceCode.c_str() , m_sDeviceCode.length() , allocator ) ;
info_object.AddMember("DeviceID", deviceId_, allocator);
object.AddMember("params", info_object , allocator ) ;
doc.AddMember( "payload" , object , allocator );
StringBuffer buffer; //获取json值
Writer<StringBuffer> writer(buffer);
doc.Accept(writer);
cout<<buffer.GetString()<<endl;
2.解析多层json
document.HasMember("payload");
Value& payload = document["payload"] ;
payload.HasMember("error")
error最底层的json的key