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}; のようなもの。

次に、薄い std::vector ラッパーを使用して、メモリ内の構造体のフラットな C++ リストとして保持します。

于 2016-10-15T21:51:12.123 に答える