Boost是一個C++庫,它可以讓C++語言變得更加便捷和高效,其中一個非常優秀的組件就是它的JSON庫。
#include <boost/json.hpp>
#include <iostream>
namespace json = boost::json;
int main()
{
// 構建JSON對象
json::object obj;
obj.emplace("name", "Tom");
obj.emplace("age", 25);
// 將JSON對象轉化為字符串輸出
std::cout<< obj<< std::endl;
// 解析JSON字符串
std::string json_str = "{\"name\": \"Jerry\", \"age\": 22}";
json::value value = json::parse(json_str);
// 輸出JSON對象中的元素
auto const & age = value.as_object().at("age").as_int64();
std::cout<< "Age is "<< age<< std::endl;
return 0;
}
在上面的代碼中,我們首先包含了Boost庫的頭文件,然后通過namespace json來訪問其中的JSON類。接著,我們構建了一個JSON對象,其中包含了一個name和age的成員,分別使用emplace函數來實現。
我們可以將JSON對象輸出為字符串,這里使用了cout流,結果如下所示:
{"name":"Tom","age":25}
然后,我們通過調用parse函數,將JSON字符串解析為一個JSON值。這個值被存儲在value中,我們可以使用as_object函數來獲取json::object類型的對象,然后使用at函數來獲取age成員,并將其轉化為int類型。
最后,我們將age輸出到控制臺,得到的結果是:
Age is 22
通過Boost的JSON庫,我們可以輕松地構建JSON對象,對JSON字符串進行解析,以及查詢JSON對象中的元素,是一個非常優秀的C++ JSON庫。
上一篇excel含json字段
下一篇mysql過期了還能用嗎