4

我正在使用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"
        ]
    ]
}
4

1 回答 1

1

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

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

于 2016-10-15T21:51:12.123 回答