C++ 是一種強類型語言,可以輕松處理各種數據格式。而 JSON 是當前最流行的一種數據交換格式,因此,在 C++ 中解析 JSON 數據是非常重要的。而解析 JSON 數據需要使用庫,c++中一個非常流行的 JSON 解析庫是 RapidJSON,下面介紹一些其基本用法。
#include "rapidjson/document.h" #include "rapidjson/writer.h" #include "rapidjson/stringbuffer.h" using namespace rapidjson; int main() { //json字符串 const char* json = "{\"name\":\"Tom\",\"age\":18,\"gender\":\"male\"}"; //從字符串中解析出json文檔 Document doc; doc.Parse(json); //獲取值 std::string name = doc["name"].GetString(); int age = doc["age"].GetInt(); std::string gender = doc["gender"].GetString(); //輸出json值 printf("Name:%s\n", name.c_str()); printf("Age:%d\n", age); printf("Gender:%s\n", gender.c_str()); //創建json文檔 Document newDoc; newDoc.SetObject(); //添加值 Value strValue(kStringType); strValue.SetString("Jerry", 5); Value intValue(kNumberType); intValue.SetInt(20); Value genderValue(kStringType); genderValue.SetString("female"); newDoc.AddMember("name", strValue, newDoc.GetAllocator()); newDoc.AddMember("age", intValue, newDoc.GetAllocator()); newDoc.AddMember("gender", genderValue, newDoc.GetAllocator()); //輸出新的json文檔 StringBuffer buffer; Writerwriter(buffer); newDoc.Accept(writer); printf("%s\n", buffer.GetString()); return 0; }
以上代碼演示了 RapidJSON 庫的一些基本用法,如解析 JSON String 和創建 JSON 對象。其中,document 對象是 RapidJSON 解析過程中很重要的對象,它代表了 JSON 文檔。而 Value 代表 JSON 的一個值,它有多種類型,例如 kStringType 表示字符串類型,kNumberType 表示數字類型等。
總的來說,對于 C++ 這種強類型語言,要想處理 JSON 數據,使用解析庫是必不可少的。RapidJSON 是一款非常好用的 JSON 解析庫,也是 C++ 社區中最受歡迎的解析庫之一。我們可以根據自己的實際需求,使用 RapidJSON 的各種類型和方法,對 JSON 數據進行解析和處理。
上一篇cxf json 錯誤
下一篇c+json長度限制