C++ 11是C++語言的一個新標(biāo)準(zhǔn),它引入了許多新的特性和改進(jìn)。其中之一就是C++ 11對JSON格式的原生支持。
C++ 11提供了一個頭文件<json11.h>
,它包含了一個JSON庫。這個庫非常易于使用,可以輕松地將JSON數(shù)據(jù)解析為C++對象,并將C++對象轉(zhuǎn)換為JSON格式。
#include <iostream> #include <json11.h> int main() { std::string json = "{\"name\": \"John\", \"age\": 30, \"city\": \"New York\"}"; std::string err; json11::Json obj = json11::Json::parse(json, err); if (!err.empty()) { std::cerr<< "Failed to parse JSON: "<< err<< std::endl; return 1; } std::string name = obj["name"].string_value(); int age = obj["age"].int_value(); std::string city = obj["city"].string_value(); std::cout<< "Name: "<< name<< ", Age: "<< age<< ", City: "<< city<< std::endl; return 0; }
上面這段代碼將一個JSON字符串解析為一個json11::Json
對象,然后從該對象中提取值并將其打印到控制臺上。
除了JSON解析器之外,C++ 11的JSON庫還提供了一個非常方便的方法,用于將C++對象轉(zhuǎn)換為JSON格式。
#include <iostream> #include <json11.h> int main() { std::map<std::string, json11::Json> person; person["name"] = "John"; person["age"] = 30; person["city"] = "New York"; json11::Json obj = person; std::string json = obj.dump(); std::cout<< "JSON: "<< json<< std::endl; return 0; }
上面這段代碼將一個C++std::map
對象轉(zhuǎn)換為一個json11::Json
對象,然后再將其轉(zhuǎn)換為JSON格式的字符串。
C++ 11中的JSON庫是一個非常實(shí)用的工具,它使得C++程序員可以輕松地解析和生成JSON數(shù)據(jù)。