如何使用std :: initializer_list和std :: pair的Json对象构造函数?

时间:2017-10-20 06:23:42

标签: c++ json c++11 std-pair stdinitializerlist

我想创建一个构造函数,然后通过传递创建Json对象。

class JsonObject {
    std::map<std::string, QVariant> mMapOfMarks;

public:
    JsonObject(std::initializer_list<std::pair<const std::string, QVariant> > marksMap) :
            mMapOfMarks(marksMap) {
    }
    void display() {
        for (auto entry : mMapOfMarks)
            con << QString::fromStdString(entry.first) << " : " << entry.second ;
        std::cout << std::endl;
    }
};

这是初始化对象列表

JsonObject json_obj
{
    { "Riti", 2 },
    { "Jack", "4asdf" } ,
    {"sdfsdf","sdfd"}
};

并显示良好,输出:

> "Jack"    :  QVariant(QString, "4asdf")  
> "Riti"    :  QVariant(int, 2)
> "sdfsdf"  :  QVariant(QString, "sdfd")

但我想构建如下的嵌套json对象?我怎么能这样做?

我想要的示例jsonobject,key是字符串但值类型可更改,如int,double,string,float,char或任何已知的数据类型

JsonObject json_obj
{
    { "Riti", 2 },//int
    { "Jack", "4asdf" } ,//String
    {"sdfsdf", // object
        {"scvzx",342423.45} // double
    }
};

0 个答案:

没有答案