JSON_Spirit:将value.type()映射回类型?

时间:2010-04-22 00:49:22

标签: c++ json json-spirit

您可以显示如下的值类型:

cout << val.type() << end;

并打印一个数字。

如何将此数字映射回实际类型?

除了在头文件中偷看之外,当然,它揭示了所有......

enum Value_type {
    obj_type,array_type,str_type,bool_type,int_type,real_type,null_type
};

2 个答案:

答案 0 :(得分:0)

不,这似乎是规范的方式:

    switch(v.type()) {
        case obj_type:    pp_obj(v, lev+1);   break;
        case array_type:  pp_array(v, lev+1); break;
        case str_type:    pp<string>(v, lev+1);   break;
        case bool_type:   pp<bool>(v, lev+1);  break;
        case int_type:    pp<int>(v, lev+1);   break;
        case real_type:   pp<double>(v, lev+1);  break;
        case null_type:   pp_null(v, lev+1);  break;
    }

答案 1 :(得分:0)

价值val;  读(是,val);  对象o = val.get_obj();

然后创建一个Pair,假设它是0。 配对= o [1];

其中1是迭代值。我花了很长时间才弄清楚,所以我试图节省其他需要稍后查看的人的时间。使用sizeof(o)/ sizeof(int)迭代,以及++ i而不是i ++。