Стандарт C99 определяет стандартные международные типы:
7.18.1.4 Целых типа, способные к содержанию объектных указателей, следующий тип определяет тип целого числа со знаком со свойством, что любой допустимый указатель на пустоту может быть преобразован в этот тип, затем преобразовал назад в указатель на пустоту, и результат выдержит сравнение равный исходному указателю:
intptr_t
следующий тип определяет тип беззнаковых целых чисел со свойством, что любой допустимый указатель на пустоту может быть преобразован в этот тип, затем преобразовал назад в указатель на пустоту, и результат выдержит сравнение равный исходному указателю:
uintptr_t
Эти типы являются дополнительными.
C99 также определяет size_t и ptrdiff_t:
типы
ptrdiff_t
, который является типом целого числа со знаком результата вычитания двух указателей;
size_t
, который является типом беззнаковых целых чисел результата sizeof оператора; и
архитектура, которую я видел, имеет максимальный размер объекта, равного целой памяти, таким образом, sizeof (size_t) == sizeof (пусто*), но я не знаю ни о чем, что оба портативно к C89 (который size_t
) и гарантируемый быть достаточно большим (который uintptr_t
).
В спецификациях указано, что в JSON вы можете заключать ключи и значения только в двойные кавычки, поэтому попробуйте использовать двойные кавычки. Я почти уверен, что ваша ошибка будет решена.
Вы можете использовать json.js для кодирования / экранирования специальных символов в фактических значениях, чтобы у вас не возникли проблемы со значениями, содержащими "для например, или метод stringify из http://www.json.org/js.html .