问题描述
我正在尝试使用 C++ 读取 JSON 文件。在文件中我有键值对。在值中,我传递了具有不同参数的多个值。
方法一:
"test_details" : {
"testd" : "1","testvalue":["one","two(param1,para2)","three(param1,param2,param3)"]
}
方法二:
"test_details" : {
"testd" : "1","testvalue":"one"
},{
"testd" : "2","testvalue":"two(param1,para2)"
},{
"testd" : "3","testvalue":"three(param1,param3)"
}
谢谢
解决方法
正确的解析方式是获取键“testvalue”下的对象
您必须将其解析为一个,例如 vector<string>
是的,可以将该 json 解析为对象。我非常喜欢第二种方法。假设您采用第二种方法,您可以创建一个如下所示的 TestCase 类:
class TestCase {
public:
std::string id;
std::string value;
// std::vector<std::string> values; // this will hold multiple values for one test case
}
class TestDetails { public: std::vector<TestCase> };
这个类的对象可以通过反序列化你的 json 负载来构造。反之即可得到json序列化结果。
检查此 library 以在 C++ 中解析 json。 json解析的方案很多,我链接的库是个人喜好。