чтение файла json с помощью std :: eof при использовании nlohmann :: json - PullRequest
0 голосов
/ 31 марта 2020

Я пытаюсь прочитать из JSON файла с условием while: std::eof

, но получаю следующее исключение:

terminate вызывается после создание экземпляра 'nlohmann :: detail :: parse_error' what (): [json .exception.parse_error.101] ошибка синтаксического анализа в строке 1, столбец 1: синтаксическая ошибка при синтаксическом анализе значения - неожиданный конец ввода; ожидаемый '[', '{' или литерал

это файл:

[{"id": 0, "цена": 0, " кол-во ": 0}, {" id ": 1," цена ": 1," кол-во ": 1}]

и это код:

#include <iostream>
#include <json.hpp>
#include <fstream>
using json = nlohmann::json;
int main() {
  std::ofstream f;
  f.open("test.json",std::ios_base::trunc |std::ios_base::out);
  json result = json::array();
  for(int i =0 ;i < 2 ; i++)
  {
    json j = {
        {"id",i},
        {"qty",i},
        {"price",i}
    };
    result.push_back(j);
  }
  f << result;
  f.close();
  std::ifstream j;
  std::string line;
  j.open("test.json",std::ios_base::in);
  json ob;
  while (!j.eof())
  {
    j>>ob;
    std::cout << ob << "\n";
  }
  j.close();
  return 0;
}
...