libjson — это простая и высокопроизводительная C-библиотека для работы с JSON, распространяемая под лицензией LGPL.
libjson поддерживает парсинг в режиме SAX и DOM.
libjson экономно использует память. При использовании режима SAX библиотека не выделяет динамически никакой памяти. В режиме DOM при парсинге и сериализации для каждого узла выделяется всего 20 байт (в системах с 32-битной адресацией) или 32 байта (в системах с 64-битной адресацией) памяти (не считая памяти, занимаемой самими строками).
Библиотека libjson сама по себе является потокобезопасной. Однако если используется режим SAX, следует самостоятельно обеспечивать потокобезопасность передаваемых обратных вызовов.
На данный момент libjson использует рекурсивный подход для генерации и анализа JSON-текста, поэтому при слишком глубоких вложениях объектов JSON может произойти переполнение стека.
libjson имеет ограничения на длину строк и точность чисел.
При работе на любом типе системы libjson использует переменную типа double
для хранения чисел с плавающей запятой и переменную типа long long int
для целых чисел при парсинге. Если входящий JSON-строка превышает эти ограничения, полученные значения могут оказаться некорректными, но libjson пока не возвращает ошибку в таких случаях.### Системы с 32-битной адресацией
Длина имени (name
) не должна превышать 255 байт (8 бит), а длина строки значения (value
) — 65535 байт (16 бит). Если входящая JSON-строка превышает эти ограничения, происходит обрезание значений. Но libjson
пока не возвращает ошибку в таких случаях.
Например, если длина имени составляет 300 байт, то она будет обрезана до 44 байт.
Длина имени (name
) не должна превышать 262143 байта (18 бит), а длина строки значения (value
) — 274877906943 байта (38 бит). Если входящая JSON-строка превышает эти ограничения, происходит обрезание значений. Но libjson
пока не возвращает ошибку в таких случаях.
make -f nbproject/Makefile-Release.mk QMAKE= SUBPROJECTS= .build-conf
make -f nbproject/Makefile-Release.mk SUBPROJECTS= .build-tests-conf
./build/Release/GNU-Linux-x86/tests/TestFiles/f1 ./tests/test.json 1 p
time ./build/Release/GNU-Linux-x86/tests/TestFiles/f1 ./tests/test.json 1000000 n
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )