Парсинг json файла на C++
Скачал файл json.hpp и мне нужно спарсить вот этот файл. Мне нужно сначала спарсить "titles". А потом по этим ключам спарсить уже "irises".
Вот что пока у меня получилось.
#include <iostream>
#include <vector>
#include <string>
#include <fstream>
#include <unordered_map>
#include "json.h"
using namespace nlohmann;
using namespace std;
int main() {
ifstream src("irises.json");
json jsn;
src >> jsn;
const auto& irises = jsn["irises"];
const auto& titles = jsn["titles"];
return 0;
}
В ходе выполнения программы мне нужно получать значения признаков каждого цветка.
Подскажите, как я могу спарсить этот файл, приведя пример кода.
Ответы (1 шт):
Автор решения: KoVadim
→ Ссылка
Оно все само парсит. Вот пример, как можно взять и вывести в виде таблицы (примитивной конечно, но все же).
int main() {
ifstream src("irises.json");
json jsn;
src >> jsn;
const auto& irises = jsn["irises"];
const auto& titles = jsn["titles"];
std::vector<std::string> title; // массив заголовков
for (const auto& t : titles) {
std::string s = t;
title.push_back(s); // заполняем его
}
for (const auto& ir : irises) {
std::cout << ir["class"]; // выводим название
for (const auto& st : title) {
std::cout << "\t" << ir[st]; // пользуемся массивом заголовков
}
std::cout << "\n"; // ну и перевод строки
}
return 0;
}