/* Memory Management: the caller is always responsible to free the results from all variants of cJSON_Parse (with cJSON_Delete) and cJSON_Print (with stdlib free, cJSON_Hooks.free_fn, or cJSON_free as appropriate). The exception is cJSON_PrintPreallocated, where the caller has full responsibility of the buffer. */
/* Supply a block of JSON, and this returns a cJSON object you can interrogate. Call cJSON_Delete when finished. */
/* Supply a block of JSON, and this returns a cJSON object you can interrogate. */
CJSON_PUBLIC(cJSON*)cJSON_Parse(constchar*value);
CJSON_PUBLIC(cJSON*)cJSON_Parse(constchar*value);
/* Render a cJSON entity to text for transfer/storage. Free the char* when finished. */
/* Render a cJSON entity to text for transfer/storage. */
CJSON_PUBLIC(char*)cJSON_Print(constcJSON*item);
CJSON_PUBLIC(char*)cJSON_Print(constcJSON*item);
/* Render a cJSON entity to text for transfer/storage without any formatting. Free the char* when finished. */
/* Render a cJSON entity to text for transfer/storage without any formatting. */
/* Render a cJSON entity to text using a buffered strategy. prebuffer is a guess at the final size. guessing well reduces reallocation. fmt=0 gives unformatted, =1 gives formatted */
/* Render a cJSON entity to text using a buffered strategy. prebuffer is a guess at the final size. guessing well reduces reallocation. fmt=0 gives unformatted, =1 gives formatted */