Конвертировать 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

Решение

Парсер json перегружен оператором [], чтобы принять целое число для массива JSON. Таким образом, к нему обращаются так же, как к вектору, но основная структура данных не имеет много общего. Так что вам нужно вернуть его обратно в вектор std :::. Вы также захотите преобразовать поля из JSON во что-то более похожее на C ++, если хотите использовать данные в другом месте. Что-то вроде {int id, std :: string title, int кол-во, плавающая цена};

Тогда у вас получится плоский список структур C ++ в памяти с тонкой оболочкой std :: vector.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]