#include<iostream>\n#include<string>\n#include<vector>\n#include<map>\n#include<sstream>\n#include<json/json.h>\n\n// 定义示例结构体\nstruct Person {\n std::string name;\n int age;\n std::vector<std::string> hobbies;\n};\n\n// 将json字符串转换为结构体对象\nPerson jsonToPerson(const std::string& jsonString) {\n Person person;\n\n Json::Value root;\n Json::Reader reader;\n if (reader.parse(jsonString, root)) {\n // 获取name字段\n if (root.isMember("name") && root["name"].isString()) {\n person.name = root["name"].asString();\n }\n\n // 获取age字段\n if (root.isMember("age") && root["age"].isInt()) {\n person.age = root["age"].asInt();\n }\n\n // 获取hobbies字段\n if (root.isMember("hobbies") && root["hobbies"].isArray()) {\n for (const Json::Value& hobby : root["hobbies"]) {\n if (hobby.isString()) {\n person.hobbies.push_back(hobby.asString());\n }\n }\n }\n }\n\n return person;\n}\n\nint main() {\n std::string jsonString = R"({\n "name": "Alice",\n "age": 25,\n "hobbies": ["reading", "running", "cooking"]\n })" ;\n\n Person person = jsonToPerson(jsonString);\n\n std::cout << "Name: " << person.name << std::endl;\n std::cout << "Age: " << person.age << std::endl;\n std::cout << "Hobbies: ";\n for (const std::string& hobby : person.hobbies) {\n std::cout << hobby << " ";\n }\n std::cout << std::endl;\n\n return 0;\n}\n\n// 使用前请先安装 JsonCpp 库并配置编译环境。


原文地址: https://www.cveoy.top/t/topic/pDWM 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录