JSON 在C++中的使用

时间:2019-02-19
本文章向大家介绍JSON 在C++中的使用,主要包括JSON 在C++中的使用使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
               

CppCMS的编译和使用

请参考我的相关文章。

将C++对象转换成JSON字符串

假定有一个类response,两个字段,一个是status,0代表正确。其他代表错误。另一个是message字段,表示操作结果的具体信息。代码如下:

class response {public:    //0 is ok    //other values are wrong    int status;    string message;};

现在需要将response对象的数据转换成JSON格式字符串。还需要写一个模板类来,代码如下:

namespace cppcms {    namespace json {        template<>        struct traits<response> {            static void set(value &v, response const& in) {                v.set("status", in.status);                v.set("message", in.message);            }        };    }}

好,现在编写调用代码,并查看运行结果。

#include <cppcms/json.h>...int main(int argc, char** argv) {    response r1;    r1.status=0;    r1.message="ok";    cout<< cppcms::json::value(r1)<<endl;    response r2;    r2.status=1;    r2.message="unknown error";    cout<< cppcms::json::value(r2)<<endl;    return 0;}

运行结果:
{"message":"ok","status":0}
{"message":"unknown error","status":1}

cppcms::json::value类代码分析

之所以很容易就转换成JSON串,是因为使用了value类。现在来分析一下上面的调用代码里面是如何工作的。
1.cppcms::json::value(r1) 创建了匿名对象value,value的构造函数内部调用了set_value方法。参数v此时就是response对象。