я использую 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"]
]
}
Парсер json перегружен оператором [], чтобы принять целое число для массива JSON. Таким образом, к нему обращаются так же, как к вектору, но основная структура данных не имеет много общего. Так что вам нужно вернуть его обратно в вектор std :::. Вы также захотите преобразовать поля из JSON во что-то более похожее на C ++, если хотите использовать данные в другом месте. Что-то вроде {int id, std :: string title, int кол-во, плавающая цена};
Тогда у вас получится плоский список структур C ++ в памяти с тонкой оболочкой std :: vector.
Других решений пока нет …