Парсинг 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;
}
→ Ссылка