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

Разбор JSON с использованием C

Я пытаюсь найти хороший способ разобрать JSON на C. Мне действительно не нужна огромная библиотека или что-то еще, я бы предпочел иметь что-то маленькое и легкое с минимальным набором функций, но хорошая документация.

У кого-нибудь есть что-нибудь, на что они могут мне наказать?

4b9b3361

Ответ 1

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

Там целая тонна библиотек C, связанных на Json.org. Возможно, один из них будет хорошо работать для вас.

Ответ 2

cJSON имеет достойный API и небольшой (2 файла, ~ 700 строк). Многие из других парсеров JSON, на которые я смотрел, были огромны... Я просто хочу разобрать JSON.

Изменить: мы сделали некоторые улучшения в cJSON на протяжении многих лет.

Ответ 4

NXJSON - полнофункциональный, но очень маленький (~ 400 строк кода) JSON-анализатор, который имеет простой в использовании API:

const nx_json* json=nx_json_parse_utf8(code);
printf("hello=%s\n", nx_json_get(json, "hello")->text_value);
const nx_json* arr=nx_json_get(json, "my-array");
int i;
for (i=0; i<arr->length; i++) {
  const nx_json* item=nx_json_item(arr, i);
  printf("arr[%d]=(%d) %ld\n", i, (int)item->type, item->int_value);
}
nx_json_free(json);

Ответ 5

Я использовал JSON-C для рабочего проекта и рекомендовал бы его. Легкий и выпущен с открытым лицензированием.

Документация включена в дистрибутив. В основном у вас есть функции *_add для создания объектов JSON, эквивалентных функций *_put для выпуска их памяти и функций утилиты, которые преобразуют типы и выходные объекты в строковое представление.

Лицензирование позволяет включить в ваш проект. Мы использовали его таким образом, компилируя JSON-C как статическую библиотеку, связанную с основной сборкой. Таким образом, нам не нужно беспокоиться о зависимостях (кроме установки Xcode).

JSON-C также создан для нас под OS X (x86 Intel) и Linux (x86 Intel) без инцидентов. Если ваш проект должен быть портативным, это хороший старт.

Ответ 6

Вы можете посмотреть Jansson

На веб-сайте указано следующее: Jansson является библиотекой C для кодирования, декодирования и обработки данных JSON. Он имеет:

  • Простой и интуитивно понятный API и модель данных
  • Можно кодировать и декодировать из JSON
  • Комплексная документация
  • Никаких зависимостей от других библиотек
  • Полная поддержка Unicode (UTF-8)
  • Обширный набор тестов

Ответ 7

Вам нужно разобрать произвольные структуры JSON или просто данные, специфичные для вашего приложения. Если последнее, вы можете сделать его намного легче и эффективнее, не создавая никакой хэш-таблицы/структуры карты, отображающей ключи JSON для значений; вместо этого вы можете просто хранить данные непосредственно в полях структуры или что-то еще.