C ++ - 将JSON或数组从它转换为向量

时间:2016-10-15 21:06:49

标签: c++ json nlohmann-json

我使用https://github.com/nlohmann/json将JSON文件加载到我的程序中 此刻,我正在加载它:

json jsonFile;
ifstream ifs("data/test.json");
ifs >> jsonFile;

// create JSON from stream
json j_complete(jsonFile);

我可以通过以下方式访问它:

jsonFile["data"][X][Y] // X, Y are indexes

但是我想从中创建矢量 - 我该怎么做呢?  以下是此文件的示例:

{
    "cols": [
        "id",
        "title",
        "quantity",
        "price"
    ],
    "data": [
        [
            12,
            "Guzman",
            6,
            "6.31"
        ],
        [
            2,
            "..",
            5,
            "4.34"
        ],
        [
            3,
            "Goldeniererere",
            14,
            "4.15"
        ]
    ]
}

1 个答案:

答案 0 :(得分:0)

json解析器重载了[]运算符以接受JSON数组的整数。因此它以与向量相同的方式访问,但底层数据结构并没有多少共同之处。所以你需要把它推回到std ::: vector。您还希望将字段从JSON转换为更多C ++,如果您想在其他地方使用数据。类似{int id,std :: string title,int quantity,float price};

然后你将它作为平面C ++内存结构列表,上面有一个瘦的std :: vector包装器。