Мне нужно записать то, что делает мое приложение, в json-файл. Ожидается, что приложение будет продолжаться в течение нескольких недель, и поэтому я хочу поэтапно писать json-файл.jsoncpp писать инкрементировать
На данный момент я пишу json вручную, но есть приложение для чтения журналов, которое использует Jsoncpp lib, и должно быть приятно записать журнал с помощью Jsoncpp lib.
Но в руководстве и в некоторых примерах, которые я не нашел ничего подобного .. Это всегда что-то вроде:
Json::Value root;
// fill the json
ofstream mFile;
mFile.open(filename.c_str(), ios::trunc);
mFile << json_string;
mFile.close();
Это не то, что я хочу, потому что нет необходимости заполняет память. Я хочу сделать это постепенно. Некоторые советы?
Основная проблема заключается в том, что формат данных JSON определяет закрывающий токен '}'. Итак, если вы хотите, чтобы ваш файл журнала был допустимым блоком JSON после каждой вашей инкрементной записи, вам нужно открыть файл, удалить закрывающий токен, добавить данные и добавить закрывающий токен. Я ничего не нашел об этом в исходном коде jsoncpp. –
да, это то, что я делаю вручную на данный момент .. – nkint
Посмотрите http://stackoverflow.com/questions/6886283/how-i-can-i-lazily-read-multiple-json-objects-from -a-file-stream-in-python – ctn