C++ JSON字符串到结构体对象转换模板
这是一个基本的C++程序,使用了jsoncpp库来解析和转换json字符串为结构体对象:
#include <iostream>
#include <json/json.h>
// 定义一个结构体用来存储json数据
struct Person {
std::string name;
int age;
std::string address;
};
// 将json字符串转换为结构体对象
Person parseJson(const std::string& jsonString) {
Person person;
// 解析json字符串
Json::CharReaderBuilder builder;
Json::Value root;
std::string errors;
std::istringstream jsonStream(jsonString);
Json::parseFromStream(builder, jsonStream, &root, &errors);
// 从json对象中提取数据并赋值给结构体对象
person.name = root['name'].asString();
person.age = root['age'].asInt();
person.address = root['address'].asString();
return person;
}
int main() {
std::string jsonString = R"(
{
"name": "John",
"age": 30,
"address": "123 Street, City"
}
)";
Person person = parseJson(jsonString);
// 打印结构体对象的值
std::cout << "Name: " << person.name << std::endl;
std::cout << "Age: " << person.age << std::endl;
std::cout << "Address: " << person.address << std::endl;
return 0;
}
在上述代码中,首先定义了一个Person结构体来存储json数据。然后,使用parseJson函数将json字符串转换为结构体对象。parseJson函数使用了jsoncpp库来解析json字符串,并从json对象中提取数据并赋值给结构体对象。最后,在main函数中调用parseJson函数并打印结构体对象的值。
注意:在编译前,需要安装jsoncpp库,并将其链接到编译器。
原文地址: https://www.cveoy.top/t/topic/pDWT 著作权归作者所有。请勿转载和采集!