c++ 是一種面向?qū)ο蟮母呒?jí)編程語(yǔ)言,常用于開(kāi)發(fā)各種應(yīng)用程序。
在應(yīng)用程序開(kāi)發(fā)中,JSON 是一種常用的數(shù)據(jù)格式。JSON 可以描述各種數(shù)據(jù)結(jié)構(gòu),包括數(shù)組和對(duì)象。本文將介紹如何在 c++ 中遍歷 JSON 對(duì)象。
// 引用第三方 Json 庫(kù)
#include "json.hpp"
using json::JSON;
// json 字符串
std::string jsonString = "{"
" \"name\": \"張三\","
" \"age\": 20,"
" \"address\": {"
" \"city\": \"北京\","
" \"street\": \"長(zhǎng)安街\""
" }"
"}";
// 解析 json 字符串
JSON json = JSON::parse(jsonString);
// 遍歷 json 對(duì)象
for (auto& element : json.object_items()) {
if (element.first == "name") {
std::cout<< "name: "<< element.second.string_value()<< std::endl;
} else if (element.first == "age") {
std::cout<< "age: "<< element.second.int_value()<< std::endl;
} else if (element.first == "address") {
JSON address = element.second;
for (auto& subElement : address.object_items()) {
std::cout<< "address."<< subElement.first<< ": "<< subElement.second.string_value()<< std::endl;
}
}
}
以上代碼使用了第三方庫(kù)json.hpp
來(lái)解析 JSON 字符串。遍歷 JSON 對(duì)象的過(guò)程中,首先獲取 JSON 對(duì)象的所有元素(通過(guò)object_items()
方法),然后通過(guò)遍歷獲取每個(gè)元素的 key 和 value。在獲取嵌套的 JSON 對(duì)象時(shí),可以通過(guò)遞歸的方式遍歷。
當(dāng)然,在實(shí)際應(yīng)用中,可能會(huì)遇到 JSON 數(shù)據(jù)更加復(fù)雜的情況,需要根據(jù)實(shí)際情況進(jìn)行修改和適配。希望本文能夠幫助到需要在 c++ 中操作 JSON 數(shù)據(jù)的開(kāi)發(fā)者們。