相关疑难解决方法(0)

将C++类转换为JSON

我想创建一个包含我的类的实例变量的JSON字符串.

例如,

class Example {  
    std::string string;  
    std::map<std::string, std:string> map;  
    std::vector<int> vector;  
};
Run Code Online (Sandbox Code Playgroud)

会成为:

{
    "string":"the-string-value",
    "map": {
        "key1":"val1",
        "key2":"val2"
    },
    "vector":[1,2,3,4]
}
Run Code Online (Sandbox Code Playgroud)

我已经研究了几个用于创建JSON的C++库,它们看起来都非常复杂.我想要类似于Javascript的东西JSON.stringify(object).换句话说,只需将std :: map传递给它并接收一个字符串.地图可以包含其他地图,矢量,列表,字符串,数字和布尔.

最好的方法是什么?

谢谢你的帮助.

编辑

我调查了以下内容:

json spirit,jsoncpp,zoolib,JOST,CAJUN,libjson,nosjob,JsonBox,jsonme--

据我所知,我可以构建一个单独的JSON对象,如下面的答案和转换为JSON我希望能够将我的东西存储在标准集合中并进行转换.

编辑2

好吧,废弃了序列化类的想法,因为看起来C++缺乏反射是不可能的.

有没有一种很好的方法将包含std:maps,std :: vectors,std :: lists,numbers,strings和bools的std :: map转换为JSON,而无需更改数据类型或将数据复制到新的数据类型?

谢谢.

c++ serialization json

54
推荐指数
2
解决办法
7万
查看次数

标签 统计

c++ ×1

json ×1

serialization ×1