Подтвердить что ты не робот

Разбор JSON в ANSI C

Я хотел бы прочитать JSON-кодированные данные в C-структуры. Структура json-данных известна заранее, относительно плоская и имитируется некоторыми C struct typedefs. Массив на третьем уровне или около того содержит чрезвычайно длинный список объектов JSON, которые нужно обрабатывать по одному за раз.

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

Я знаю, что есть Crockford Список библиотек JSON, но я не совсем уверен, какой из них лучше всего подходит для указанной проблемы.

4b9b3361

Ответ 1

Попробуйте jsmn lib, мне нравится, что он может анализировать любой файл json только с двумя malloc.

jsmn - это минималистичная библиотека для анализа формата данных JSON. Он может быть легко использован в небольших проектах или может быть интегрирован во встроенные системы.

JSNM хороший выбор, потому что:

  • он совместим с версией компилятора C89
  • он не использует динамическое распределение памяти
  • он имеет наименьшие возможные накладные расходы
  • для анализа данных JSON требуется всего один проход
  • у него нет зависимостей, даже libc
  • он распространяется по лицензии MIT, так что вы можете использовать его в собственных проектах

Ответ 2

Попробуйте с json-c является одним из самых распространенных и является открытым исходным кодом и работает также в Windows (Win32).

JSON-C реализует модель объекта подсчета ссылок, которая позволяет вам легко построить объекты JSON в C, вывести их как форматированные JSON строки и разбор строки JSON, отформатированные в C представление объектов JSON.