C ++ событийно-управляемый JSON Stream Reader

Я только что обнаружил проект YAJL, который просто делает то, что мне нужно.

  • Читать из потока
  • Обратный вызов на каждом действительном разобранном токене
  • Повторная обработка неполного JSON при получении новых данных

Но я предпочитаю C ++. Конечно, я могу использовать эту библиотеку из проекта C ++ и даже написать свою собственную обертку, если я действительно этого хочу, но в любом случае предпочтительнее родной C ++.

Я посмотрел на JsonCPP, но похоже, что он не может прочитать неполные данные JSON из потока.

Существуют ли другие библиотеки C ++ для анализа потоков JSON?

Еще несколько требований:

  • легкий. boost или Qt не подходят
  • Мне нужно что-то, что я могу свободно использовать в коммерческом программном обеспечении с закрытым исходным кодом (MIT, Public Domain и т. Д.).
  • Поддержка не блокирования чтения. или разрешить подачу данных (append_incoming_data).

5

Решение

Недавно я искал библиотеку с похожими требованиями,
и фактически нашел только 1,5 библиотеки, которые поддерживают такие требования:

  1. https://github.com/kazuho/picojson

одна библиотека заголовков, BSD лицензия, и иметь такой интерфейс:

Iter parse(value& out, const Iter& first, const Iter& last, std::string* err);

так что вы можете создать append_incoming_data с парой строк кода.

  1. https://github.com/dropbox/json11
    одна библиотека файлов, лицензия похожа на BSD, c++11 поддержка, но интерфейс
    что позволяет разобрать частично прибывший из сети json это требует патча:

https://github.com/dropbox/json11/pull/55

Постскриптум

легкий. boost или Qt не подходят

На самом деле, они не подходят из-за

разрешить подачу данных

В настоящее время оба Qt5 json а также boost property_tree не могу разобрать
наполовину готов json,

1

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

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

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