Gason是一個用于C++的輕量級JSON解析器和生成器庫,它支持標準JSON語法和行內注釋。Gason提供了一個簡單的API來解析JSON文本并將其轉換為C++對象,同時也可以將C++對象轉換為JSON文本。
#include "gason.h" #includeusing namespace std; int main() { const char* json = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}"; JsonValue value; char* end; auto status = jsonParse(json, &end, &value); if (status == JsonParseStatus::JSON_PARSE_OK) { const char* name = value["name"].toString(); int age = value["age"].toInt(); const char* city = value["city"].toString(); cout<< "Name: "<< name<< endl; cout<< "Age: "<< age<< endl; cout<< "City: "<< city<< endl; } return 0; }
在上面的例子中,我們將一個JSON字符串解析為一個Gason的JsonValue對象,然后使用它的成員函數來獲取其中的內容。注意,我們需要提供JSON字符串的指針和一個用于接收解析結束位置的指針,以及一個JsonValue對象。
Gason還支持從文件中讀取JSON文本并將其解析為C++對象,也可以將C++對象序列化為JSON文本并寫入文件中。
#include "gason.h" #include#include using namespace std; int main() { ifstream file("example.json"); string content((istreambuf_iterator<char>(file)), istreambuf_iterator<char>()); JsonValue value; char* end; auto status = jsonParse(content.c_str(), &end, &value); if (status == JsonParseStatus::JSON_PARSE_OK) { const char* name = value["name"].toString(); int age = value["age"].toInt(); const char* city = value["city"].toString(); cout<< "Name: "<< name<< endl; cout<< "Age: "<< age<< endl; cout<< "City: "<< city<< endl; } return 0; }
在上面的例子中,我們打開一個JSON文件并使用std::ifstream讀取其內容。然后,我們解析JSON文本并使用JsonValue對象訪問其中的內容。當然,我們也可以使用Gason將C++對象序列化為JSON文本并將其寫入文件中。
Gason是一個簡單而易于使用的JSON解析器和生成器庫,它對標準JSON語法進行了廣泛的支持,并且具有優(yōu)秀的性能。無論是從JSON字符串和文件中讀取JSON文本,還是將C++對象序列化為JSON文本,它都提供了方便的API和高效的實現。
上一篇python 新浪 微盤
下一篇mysql刪除修改