C++是一門高效、強大的編程語言,廣泛應用于軟件開發、算法研究、嵌入式系統等領域。其中,json的解析與生成是C++編程中常見的需求。而C++中的json解析庫,如RapidJSON,提供了多級json轉換的功能,可以將json對象轉換成C++對象,也可以將C++對象轉換成json對象。
以下是一個多級json轉換的示例:
#include "rapidjson/document.h" #include "rapidjson/writer.h" #include "rapidjson/stringbuffer.h" #includeusing namespace rapidjson; using namespace std; int main() { const char* json = "{\"name\":\"Tom\",\"age\":18,\"emails\":[\"tom@gmail.com\"]}"; Document doc; doc.Parse(json); string name = doc["name"].GetString(); int age = doc["age"].GetInt(); Value& emails = doc["emails"]; for(SizeType i = 0; i< emails.Size(); i++) { string email = emails[i].GetString(); cout<< email<< endl; } StringBuffer buffer; Writer writer(buffer); writer.StartObject(); writer.String("name"); writer.String(name.c_str()); writer.String("age"); writer.Int(age); writer.String("emails"); writer.StartArray(); writer.String("tom@gmail.com"); writer.EndArray(); writer.EndObject(); cout<< buffer.GetString()<< endl; return 0; }
以上代碼實現了將json字符串轉換成C++對象,然后將C++對象轉換成json字符串的功能。其中,RapidJSON庫的Document類提供了對json解析和操作的支持,通過Value類型可以訪問json對象的各個節點,通過Writer類型可以將C++對象序列化成json字符串。