如何在 C++ 中读取具有带参数值的 JSON 文件

问题描述

我正在尝试使用 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解析的方案很多,我链接的库是个人喜好。