C++ 模板实现 JSON 字符串转换为结构体对象
#include
// 定义一个结构体模板
template
// 定义一个结构体,用于存储多个key-value对 struct MyStruct { std::vector<KeyValuestd::string> keyValues; };
// 定义一个函数模板,用于将json字符串转换为结构体对象
template
// 使用字符串流解析json字符串
std::stringstream ss(jsonStr);
// 逐个解析key-value对,并存储到结构体对象中
std::string key;
std::string value;
char colon;
char comma;
while (ss >> key >> colon >> value >> comma) {
result.keyValues.push_back({key, value});
}
return result;
}
int main() { // 定义一个json字符串 std::string jsonStr = R'({'key1':'value1', 'key2':'value2', 'key3':'value3'})' ;
// 将json字符串转换为结构体对象
MyStruct myStruct = jsonToStruct<MyStruct>(jsonStr);
// 输出结果
for (const auto& keyValue : myStruct.keyValues) {
std::cout << keyValue.key << ': ' << keyValue.value << std::endl;
}
return 0;
}
// 该程序是一个简单示例,仅适用于json字符串中每个value都是字符串的情况 // 如果json字符串中的value是其他类型(如数字、布尔值等),需要根据具体情况进行修改
原文地址: https://www.cveoy.top/t/topic/pDQC 著作权归作者所有。请勿转载和采集!