Разбор JSON в ANSI C
Я хотел бы прочитать JSON-кодированные данные в C-структуры. Структура json-данных известна заранее, относительно плоская и имитируется некоторыми C struct typedefs. Массив на третьем уровне или около того содержит чрезвычайно длинный список объектов JSON, которые нужно обрабатывать по одному за раз.
Код предназначен для работы в очень ограниченной системе, поэтому библиотека не должна динамически выделять память.
Я знаю, что есть Crockford Список библиотек JSON, но я не совсем уверен, какой из них лучше всего подходит для указанной проблемы.
Ответы
Ответ 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.