mirror of
https://github.com/DaveGamble/cJSON.git
synced 2023-08-10 21:13:26 +03:00
Use own cJSON_bool boolean type in the header
This commit is contained in:
parent
2e118df0cd
commit
2d3520e0b9
55
cJSON.c
55
cJSON.c
@ -33,9 +33,8 @@
|
|||||||
#include "cJSON.h"
|
#include "cJSON.h"
|
||||||
|
|
||||||
/* define our own boolean type */
|
/* define our own boolean type */
|
||||||
typedef int cjbool;
|
#define true ((cJSON_bool)1)
|
||||||
#define true ((cjbool)1)
|
#define false ((cJSON_bool)0)
|
||||||
#define false ((cjbool)0)
|
|
||||||
|
|
||||||
static const unsigned char *global_ep = NULL;
|
static const unsigned char *global_ep = NULL;
|
||||||
|
|
||||||
@ -237,7 +236,7 @@ typedef struct
|
|||||||
unsigned char *buffer;
|
unsigned char *buffer;
|
||||||
size_t length;
|
size_t length;
|
||||||
size_t offset;
|
size_t offset;
|
||||||
cjbool noalloc;
|
cJSON_bool noalloc;
|
||||||
} printbuffer;
|
} printbuffer;
|
||||||
|
|
||||||
/* realloc printbuffer if necessary to have at least "needed" bytes more */
|
/* realloc printbuffer if necessary to have at least "needed" bytes more */
|
||||||
@ -361,7 +360,7 @@ static unsigned char *print_number(const cJSON * const item, printbuffer * const
|
|||||||
unsigned char *output_pointer = NULL;
|
unsigned char *output_pointer = NULL;
|
||||||
double d = item->valuedouble;
|
double d = item->valuedouble;
|
||||||
int length = 0;
|
int length = 0;
|
||||||
cjbool trim_zeroes = true; /* should at the end be removed? */
|
cJSON_bool trim_zeroes = true; /* should at the end be removed? */
|
||||||
|
|
||||||
if (output_buffer == NULL)
|
if (output_buffer == NULL)
|
||||||
{
|
{
|
||||||
@ -822,11 +821,11 @@ static unsigned char *print_string(const cJSON * const item, printbuffer * const
|
|||||||
|
|
||||||
/* Predeclare these prototypes. */
|
/* Predeclare these prototypes. */
|
||||||
static const unsigned char *parse_value(cJSON * const item, const unsigned char * const input, const unsigned char ** const ep, const internal_hooks * const hooks);
|
static const unsigned char *parse_value(cJSON * const item, const unsigned char * const input, const unsigned char ** const ep, const internal_hooks * const hooks);
|
||||||
static unsigned char *print_value(const cJSON * const item, const size_t depth, const cjbool format, printbuffer * const output_buffer, const internal_hooks * const hooks);
|
static unsigned char *print_value(const cJSON * const item, const size_t depth, const cJSON_bool format, printbuffer * const output_buffer, const internal_hooks * const hooks);
|
||||||
static const unsigned char *parse_array(cJSON * const item, const unsigned char *input, const unsigned char ** const ep, const internal_hooks * const hooks);
|
static const unsigned char *parse_array(cJSON * const item, const unsigned char *input, const unsigned char ** const ep, const internal_hooks * const hooks);
|
||||||
static unsigned char *print_array(const cJSON * const item, const size_t depth, const cjbool format, printbuffer * const output_buffer, const internal_hooks * const hooks);
|
static unsigned char *print_array(const cJSON * const item, const size_t depth, const cJSON_bool format, printbuffer * const output_buffer, const internal_hooks * const hooks);
|
||||||
static const unsigned char *parse_object(cJSON * const item, const unsigned char *input, const unsigned char ** const ep, const internal_hooks * const hooks);
|
static const unsigned char *parse_object(cJSON * const item, const unsigned char *input, const unsigned char ** const ep, const internal_hooks * const hooks);
|
||||||
static unsigned char *print_object(const cJSON * const item, const size_t depth, const cjbool format, printbuffer * const output_buffer, const internal_hooks * const hooks);
|
static unsigned char *print_object(const cJSON * const item, const size_t depth, const cJSON_bool format, printbuffer * const output_buffer, const internal_hooks * const hooks);
|
||||||
|
|
||||||
/* Utility to jump whitespace and cr/lf */
|
/* Utility to jump whitespace and cr/lf */
|
||||||
static const unsigned char *skip_whitespace(const unsigned char *in)
|
static const unsigned char *skip_whitespace(const unsigned char *in)
|
||||||
@ -840,7 +839,7 @@ static const unsigned char *skip_whitespace(const unsigned char *in)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Parse an object - create a new root, and populate. */
|
/* Parse an object - create a new root, and populate. */
|
||||||
CJSON_PUBLIC(cJSON *) cJSON_ParseWithOpts(const char *value, const char **return_parse_end, cjbool require_null_terminated)
|
CJSON_PUBLIC(cJSON *) cJSON_ParseWithOpts(const char *value, const char **return_parse_end, cJSON_bool require_null_terminated)
|
||||||
{
|
{
|
||||||
const unsigned char *end = NULL;
|
const unsigned char *end = NULL;
|
||||||
/* use global error pointer if no specific one was given */
|
/* use global error pointer if no specific one was given */
|
||||||
@ -887,7 +886,7 @@ CJSON_PUBLIC(cJSON *) cJSON_Parse(const char *value)
|
|||||||
|
|
||||||
#define min(a, b) ((a < b) ? a : b)
|
#define min(a, b) ((a < b) ? a : b)
|
||||||
|
|
||||||
static unsigned char *print(const cJSON * const item, cjbool format, const internal_hooks * const hooks)
|
static unsigned char *print(const cJSON * const item, cJSON_bool format, const internal_hooks * const hooks)
|
||||||
{
|
{
|
||||||
printbuffer buffer[1];
|
printbuffer buffer[1];
|
||||||
unsigned char *printed = NULL;
|
unsigned char *printed = NULL;
|
||||||
@ -947,7 +946,7 @@ CJSON_PUBLIC(char *) cJSON_PrintUnformatted(const cJSON *item)
|
|||||||
return (char*)print(item, false, &global_hooks);
|
return (char*)print(item, false, &global_hooks);
|
||||||
}
|
}
|
||||||
|
|
||||||
CJSON_PUBLIC(char *) cJSON_PrintBuffered(const cJSON *item, int prebuffer, cjbool fmt)
|
CJSON_PUBLIC(char *) cJSON_PrintBuffered(const cJSON *item, int prebuffer, cJSON_bool fmt)
|
||||||
{
|
{
|
||||||
printbuffer p;
|
printbuffer p;
|
||||||
|
|
||||||
@ -969,7 +968,7 @@ CJSON_PUBLIC(char *) cJSON_PrintBuffered(const cJSON *item, int prebuffer, cjboo
|
|||||||
return (char*)print_value(item, 0, fmt, &p, &global_hooks);
|
return (char*)print_value(item, 0, fmt, &p, &global_hooks);
|
||||||
}
|
}
|
||||||
|
|
||||||
CJSON_PUBLIC(int) cJSON_PrintPreallocated(cJSON *item, char *buf, const int len, const cjbool fmt)
|
CJSON_PUBLIC(cJSON_bool) cJSON_PrintPreallocated(cJSON *item, char *buf, const int len, const cJSON_bool fmt)
|
||||||
{
|
{
|
||||||
printbuffer p;
|
printbuffer p;
|
||||||
|
|
||||||
@ -1040,7 +1039,7 @@ static const unsigned char *parse_value(cJSON * const item, const unsigned char
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Render a value to text. */
|
/* Render a value to text. */
|
||||||
static unsigned char *print_value(const cJSON * const item, const size_t depth, const cjbool format, printbuffer * const output_buffer, const internal_hooks * const hooks)
|
static unsigned char *print_value(const cJSON * const item, const size_t depth, const cJSON_bool format, printbuffer * const output_buffer, const internal_hooks * const hooks)
|
||||||
{
|
{
|
||||||
unsigned char *output = NULL;
|
unsigned char *output = NULL;
|
||||||
|
|
||||||
@ -1192,7 +1191,7 @@ fail:
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Render an array to text */
|
/* Render an array to text */
|
||||||
static unsigned char *print_array(const cJSON * const item, const size_t depth, const cjbool format, printbuffer * const output_buffer, const internal_hooks * const hooks)
|
static unsigned char *print_array(const cJSON * const item, const size_t depth, const cJSON_bool format, printbuffer * const output_buffer, const internal_hooks * const hooks)
|
||||||
{
|
{
|
||||||
unsigned char *output = NULL;
|
unsigned char *output = NULL;
|
||||||
unsigned char *output_pointer = NULL;
|
unsigned char *output_pointer = NULL;
|
||||||
@ -1351,7 +1350,7 @@ fail:
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Render an object to text. */
|
/* Render an object to text. */
|
||||||
static unsigned char *print_object(const cJSON * const item, const size_t depth, const cjbool format, printbuffer * const output_buffer, const internal_hooks * const hooks)
|
static unsigned char *print_object(const cJSON * const item, const size_t depth, const cJSON_bool format, printbuffer * const output_buffer, const internal_hooks * const hooks)
|
||||||
{
|
{
|
||||||
unsigned char *output = NULL;
|
unsigned char *output = NULL;
|
||||||
unsigned char *output_pointer = NULL;
|
unsigned char *output_pointer = NULL;
|
||||||
@ -1522,7 +1521,7 @@ CJSON_PUBLIC(cJSON *) cJSON_GetObjectItemCaseSensitive(const cJSON * const objec
|
|||||||
return current_element;
|
return current_element;
|
||||||
}
|
}
|
||||||
|
|
||||||
CJSON_PUBLIC(cjbool) cJSON_HasObjectItem(const cJSON *object, const char *string)
|
CJSON_PUBLIC(cJSON_bool) cJSON_HasObjectItem(const cJSON *object, const char *string)
|
||||||
{
|
{
|
||||||
return cJSON_GetObjectItem(object, string) ? 1 : 0;
|
return cJSON_GetObjectItem(object, string) ? 1 : 0;
|
||||||
}
|
}
|
||||||
@ -1804,7 +1803,7 @@ CJSON_PUBLIC(cJSON *) cJSON_CreateFalse(void)
|
|||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
|
|
||||||
CJSON_PUBLIC(cJSON *) cJSON_CreateBool(cjbool b)
|
CJSON_PUBLIC(cJSON *) cJSON_CreateBool(cJSON_bool b)
|
||||||
{
|
{
|
||||||
cJSON *item = cJSON_New_Item(&global_hooks);
|
cJSON *item = cJSON_New_Item(&global_hooks);
|
||||||
if(item)
|
if(item)
|
||||||
@ -2042,7 +2041,7 @@ CJSON_PUBLIC(cJSON *) cJSON_CreateStringArray(const char **strings, int count)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Duplication */
|
/* Duplication */
|
||||||
CJSON_PUBLIC(cJSON *) cJSON_Duplicate(const cJSON *item, cjbool recurse)
|
CJSON_PUBLIC(cJSON *) cJSON_Duplicate(const cJSON *item, cJSON_bool recurse)
|
||||||
{
|
{
|
||||||
cJSON *newitem = NULL;
|
cJSON *newitem = NULL;
|
||||||
cJSON *child = NULL;
|
cJSON *child = NULL;
|
||||||
@ -2185,7 +2184,7 @@ CJSON_PUBLIC(void) cJSON_Minify(char *json)
|
|||||||
*into = '\0';
|
*into = '\0';
|
||||||
}
|
}
|
||||||
|
|
||||||
CJSON_PUBLIC(cjbool) cJSON_IsInvalid(const cJSON * const item)
|
CJSON_PUBLIC(cJSON_bool) cJSON_IsInvalid(const cJSON * const item)
|
||||||
{
|
{
|
||||||
if (item == NULL)
|
if (item == NULL)
|
||||||
{
|
{
|
||||||
@ -2195,7 +2194,7 @@ CJSON_PUBLIC(cjbool) cJSON_IsInvalid(const cJSON * const item)
|
|||||||
return (item->type & 0xFF) == cJSON_Invalid;
|
return (item->type & 0xFF) == cJSON_Invalid;
|
||||||
}
|
}
|
||||||
|
|
||||||
CJSON_PUBLIC(cjbool) cJSON_IsFalse(const cJSON * const item)
|
CJSON_PUBLIC(cJSON_bool) cJSON_IsFalse(const cJSON * const item)
|
||||||
{
|
{
|
||||||
if (item == NULL)
|
if (item == NULL)
|
||||||
{
|
{
|
||||||
@ -2205,7 +2204,7 @@ CJSON_PUBLIC(cjbool) cJSON_IsFalse(const cJSON * const item)
|
|||||||
return (item->type & 0xFF) == cJSON_False;
|
return (item->type & 0xFF) == cJSON_False;
|
||||||
}
|
}
|
||||||
|
|
||||||
CJSON_PUBLIC(cjbool) cJSON_IsTrue(const cJSON * const item)
|
CJSON_PUBLIC(cJSON_bool) cJSON_IsTrue(const cJSON * const item)
|
||||||
{
|
{
|
||||||
if (item == NULL)
|
if (item == NULL)
|
||||||
{
|
{
|
||||||
@ -2216,7 +2215,7 @@ CJSON_PUBLIC(cjbool) cJSON_IsTrue(const cJSON * const item)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
CJSON_PUBLIC(cjbool) cJSON_IsBool(const cJSON * const item)
|
CJSON_PUBLIC(cJSON_bool) cJSON_IsBool(const cJSON * const item)
|
||||||
{
|
{
|
||||||
if (item == NULL)
|
if (item == NULL)
|
||||||
{
|
{
|
||||||
@ -2225,7 +2224,7 @@ CJSON_PUBLIC(cjbool) cJSON_IsBool(const cJSON * const item)
|
|||||||
|
|
||||||
return (item->type & (cJSON_True | cJSON_False)) != 0;
|
return (item->type & (cJSON_True | cJSON_False)) != 0;
|
||||||
}
|
}
|
||||||
CJSON_PUBLIC(cjbool) cJSON_IsNull(const cJSON * const item)
|
CJSON_PUBLIC(cJSON_bool) cJSON_IsNull(const cJSON * const item)
|
||||||
{
|
{
|
||||||
if (item == NULL)
|
if (item == NULL)
|
||||||
{
|
{
|
||||||
@ -2235,7 +2234,7 @@ CJSON_PUBLIC(cjbool) cJSON_IsNull(const cJSON * const item)
|
|||||||
return (item->type & 0xFF) == cJSON_NULL;
|
return (item->type & 0xFF) == cJSON_NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
CJSON_PUBLIC(cjbool) cJSON_IsNumber(const cJSON * const item)
|
CJSON_PUBLIC(cJSON_bool) cJSON_IsNumber(const cJSON * const item)
|
||||||
{
|
{
|
||||||
if (item == NULL)
|
if (item == NULL)
|
||||||
{
|
{
|
||||||
@ -2245,7 +2244,7 @@ CJSON_PUBLIC(cjbool) cJSON_IsNumber(const cJSON * const item)
|
|||||||
return (item->type & 0xFF) == cJSON_Number;
|
return (item->type & 0xFF) == cJSON_Number;
|
||||||
}
|
}
|
||||||
|
|
||||||
CJSON_PUBLIC(cjbool) cJSON_IsString(const cJSON * const item)
|
CJSON_PUBLIC(cJSON_bool) cJSON_IsString(const cJSON * const item)
|
||||||
{
|
{
|
||||||
if (item == NULL)
|
if (item == NULL)
|
||||||
{
|
{
|
||||||
@ -2255,7 +2254,7 @@ CJSON_PUBLIC(cjbool) cJSON_IsString(const cJSON * const item)
|
|||||||
return (item->type & 0xFF) == cJSON_String;
|
return (item->type & 0xFF) == cJSON_String;
|
||||||
}
|
}
|
||||||
|
|
||||||
CJSON_PUBLIC(cjbool) cJSON_IsArray(const cJSON * const item)
|
CJSON_PUBLIC(cJSON_bool) cJSON_IsArray(const cJSON * const item)
|
||||||
{
|
{
|
||||||
if (item == NULL)
|
if (item == NULL)
|
||||||
{
|
{
|
||||||
@ -2265,7 +2264,7 @@ CJSON_PUBLIC(cjbool) cJSON_IsArray(const cJSON * const item)
|
|||||||
return (item->type & 0xFF) == cJSON_Array;
|
return (item->type & 0xFF) == cJSON_Array;
|
||||||
}
|
}
|
||||||
|
|
||||||
CJSON_PUBLIC(cjbool) cJSON_IsObject(const cJSON * const item)
|
CJSON_PUBLIC(cJSON_bool) cJSON_IsObject(const cJSON * const item)
|
||||||
{
|
{
|
||||||
if (item == NULL)
|
if (item == NULL)
|
||||||
{
|
{
|
||||||
@ -2275,7 +2274,7 @@ CJSON_PUBLIC(cjbool) cJSON_IsObject(const cJSON * const item)
|
|||||||
return (item->type & 0xFF) == cJSON_Object;
|
return (item->type & 0xFF) == cJSON_Object;
|
||||||
}
|
}
|
||||||
|
|
||||||
CJSON_PUBLIC(cjbool) cJSON_IsRaw(const cJSON * const item)
|
CJSON_PUBLIC(cJSON_bool) cJSON_IsRaw(const cJSON * const item)
|
||||||
{
|
{
|
||||||
if (item == NULL)
|
if (item == NULL)
|
||||||
{
|
{
|
||||||
|
34
cJSON.h
34
cJSON.h
@ -78,6 +78,8 @@ typedef struct cJSON_Hooks
|
|||||||
void (*free_fn)(void *ptr);
|
void (*free_fn)(void *ptr);
|
||||||
} cJSON_Hooks;
|
} cJSON_Hooks;
|
||||||
|
|
||||||
|
typedef int cJSON_bool;
|
||||||
|
|
||||||
#if !defined(__WINDOWS__) && (defined(WIN32) || defined(WIN64) || defined(_MSC_VER) || defined(_WIN32))
|
#if !defined(__WINDOWS__) && (defined(WIN32) || defined(WIN64) || defined(_MSC_VER) || defined(_WIN32))
|
||||||
#define __WINDOWS__
|
#define __WINDOWS__
|
||||||
#endif
|
#endif
|
||||||
@ -129,9 +131,9 @@ CJSON_PUBLIC(char *) cJSON_Print(const cJSON *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. Free the char* when finished. */
|
||||||
CJSON_PUBLIC(char *) cJSON_PrintUnformatted(const cJSON *item);
|
CJSON_PUBLIC(char *) cJSON_PrintUnformatted(const cJSON *item);
|
||||||
/* 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 */
|
||||||
CJSON_PUBLIC(char *) cJSON_PrintBuffered(const cJSON *item, int prebuffer, int fmt);
|
CJSON_PUBLIC(char *) cJSON_PrintBuffered(const cJSON *item, int prebuffer, cJSON_bool fmt);
|
||||||
/* Render a cJSON entity to text using a buffer already allocated in memory with length buf_len. Returns 1 on success and 0 on failure. */
|
/* Render a cJSON entity to text using a buffer already allocated in memory with length buf_len. Returns 1 on success and 0 on failure. */
|
||||||
CJSON_PUBLIC(int) cJSON_PrintPreallocated(cJSON *item, char *buf, const int len, const int fmt);
|
CJSON_PUBLIC(cJSON_bool) cJSON_PrintPreallocated(cJSON *item, char *buf, const int len, const cJSON_bool fmt);
|
||||||
/* Delete a cJSON entity and all subentities. */
|
/* Delete a cJSON entity and all subentities. */
|
||||||
CJSON_PUBLIC(void) cJSON_Delete(cJSON *c);
|
CJSON_PUBLIC(void) cJSON_Delete(cJSON *c);
|
||||||
|
|
||||||
@ -142,27 +144,27 @@ CJSON_PUBLIC(cJSON *) cJSON_GetArrayItem(const cJSON *array, int item);
|
|||||||
/* Get item "string" from object. Case insensitive. */
|
/* Get item "string" from object. Case insensitive. */
|
||||||
CJSON_PUBLIC(cJSON *) cJSON_GetObjectItem(const cJSON *object, const char *string);
|
CJSON_PUBLIC(cJSON *) cJSON_GetObjectItem(const cJSON *object, const char *string);
|
||||||
CJSON_PUBLIC(cJSON *) cJSON_GetObjectItemCaseSensitive(const cJSON *object, const char *string);
|
CJSON_PUBLIC(cJSON *) cJSON_GetObjectItemCaseSensitive(const cJSON *object, const char *string);
|
||||||
CJSON_PUBLIC(int) cJSON_HasObjectItem(const cJSON *object, const char *string);
|
CJSON_PUBLIC(cJSON_bool) cJSON_HasObjectItem(const cJSON *object, const char *string);
|
||||||
/* For analysing failed parses. This returns a pointer to the parse error. You'll probably need to look a few chars back to make sense of it. Defined when cJSON_Parse() returns 0. 0 when cJSON_Parse() succeeds. */
|
/* For analysing failed parses. This returns a pointer to the parse error. You'll probably need to look a few chars back to make sense of it. Defined when cJSON_Parse() returns 0. 0 when cJSON_Parse() succeeds. */
|
||||||
CJSON_PUBLIC(const char *) cJSON_GetErrorPtr(void);
|
CJSON_PUBLIC(const char *) cJSON_GetErrorPtr(void);
|
||||||
|
|
||||||
/* These functions check the type of an item */
|
/* These functions check the type of an item */
|
||||||
CJSON_PUBLIC(int) cJSON_IsInvalid(const cJSON * const item);
|
CJSON_PUBLIC(cJSON_bool) cJSON_IsInvalid(const cJSON * const item);
|
||||||
CJSON_PUBLIC(int) cJSON_IsFalse(const cJSON * const item);
|
CJSON_PUBLIC(cJSON_bool) cJSON_IsFalse(const cJSON * const item);
|
||||||
CJSON_PUBLIC(int) cJSON_IsTrue(const cJSON * const item);
|
CJSON_PUBLIC(cJSON_bool) cJSON_IsTrue(const cJSON * const item);
|
||||||
CJSON_PUBLIC(int) cJSON_IsBool(const cJSON * const item);
|
CJSON_PUBLIC(cJSON_bool) cJSON_IsBool(const cJSON * const item);
|
||||||
CJSON_PUBLIC(int) cJSON_IsNull(const cJSON * const item);
|
CJSON_PUBLIC(cJSON_bool) cJSON_IsNull(const cJSON * const item);
|
||||||
CJSON_PUBLIC(int) cJSON_IsNumber(const cJSON * const item);
|
CJSON_PUBLIC(cJSON_bool) cJSON_IsNumber(const cJSON * const item);
|
||||||
CJSON_PUBLIC(int) cJSON_IsString(const cJSON * const item);
|
CJSON_PUBLIC(cJSON_bool) cJSON_IsString(const cJSON * const item);
|
||||||
CJSON_PUBLIC(int) cJSON_IsArray(const cJSON * const item);
|
CJSON_PUBLIC(cJSON_bool) cJSON_IsArray(const cJSON * const item);
|
||||||
CJSON_PUBLIC(int) cJSON_IsObject(const cJSON * const item);
|
CJSON_PUBLIC(cJSON_bool) cJSON_IsObject(const cJSON * const item);
|
||||||
CJSON_PUBLIC(int) cJSON_IsRaw(const cJSON * const item);
|
CJSON_PUBLIC(cJSON_bool) cJSON_IsRaw(const cJSON * const item);
|
||||||
|
|
||||||
/* These calls create a cJSON item of the appropriate type. */
|
/* These calls create a cJSON item of the appropriate type. */
|
||||||
CJSON_PUBLIC(cJSON *) cJSON_CreateNull(void);
|
CJSON_PUBLIC(cJSON *) cJSON_CreateNull(void);
|
||||||
CJSON_PUBLIC(cJSON *) cJSON_CreateTrue(void);
|
CJSON_PUBLIC(cJSON *) cJSON_CreateTrue(void);
|
||||||
CJSON_PUBLIC(cJSON *) cJSON_CreateFalse(void);
|
CJSON_PUBLIC(cJSON *) cJSON_CreateFalse(void);
|
||||||
CJSON_PUBLIC(cJSON *) cJSON_CreateBool(int b);
|
CJSON_PUBLIC(cJSON *) cJSON_CreateBool(cJSON_bool boolean);
|
||||||
CJSON_PUBLIC(cJSON *) cJSON_CreateNumber(double num);
|
CJSON_PUBLIC(cJSON *) cJSON_CreateNumber(double num);
|
||||||
CJSON_PUBLIC(cJSON *) cJSON_CreateString(const char *string);
|
CJSON_PUBLIC(cJSON *) cJSON_CreateString(const char *string);
|
||||||
/* raw json */
|
/* raw json */
|
||||||
@ -199,14 +201,14 @@ CJSON_PUBLIC(void) cJSON_ReplaceItemInArray(cJSON *array, int which, cJSON *newi
|
|||||||
CJSON_PUBLIC(void) cJSON_ReplaceItemInObject(cJSON *object,const char *string,cJSON *newitem);
|
CJSON_PUBLIC(void) cJSON_ReplaceItemInObject(cJSON *object,const char *string,cJSON *newitem);
|
||||||
|
|
||||||
/* Duplicate a cJSON item */
|
/* Duplicate a cJSON item */
|
||||||
CJSON_PUBLIC(cJSON *) cJSON_Duplicate(const cJSON *item, int recurse);
|
CJSON_PUBLIC(cJSON *) cJSON_Duplicate(const cJSON *item, cJSON_bool recurse);
|
||||||
/* Duplicate will create a new, identical cJSON item to the one you pass, in new memory that will
|
/* Duplicate will create a new, identical cJSON item to the one you pass, in new memory that will
|
||||||
need to be released. With recurse!=0, it will duplicate any children connected to the item.
|
need to be released. With recurse!=0, it will duplicate any children connected to the item.
|
||||||
The item->next and ->prev pointers are always zero on return from Duplicate. */
|
The item->next and ->prev pointers are always zero on return from Duplicate. */
|
||||||
|
|
||||||
/* ParseWithOpts allows you to require (and check) that the JSON is null terminated, and to retrieve the pointer to the final byte parsed. */
|
/* ParseWithOpts allows you to require (and check) that the JSON is null terminated, and to retrieve the pointer to the final byte parsed. */
|
||||||
/* If you supply a ptr in return_parse_end and parsing fails, then return_parse_end will contain a pointer to the error. If not, then cJSON_GetErrorPtr() does the job. */
|
/* If you supply a ptr in return_parse_end and parsing fails, then return_parse_end will contain a pointer to the error. If not, then cJSON_GetErrorPtr() does the job. */
|
||||||
CJSON_PUBLIC(cJSON *) cJSON_ParseWithOpts(const char *value, const char **return_parse_end, int require_null_terminated);
|
CJSON_PUBLIC(cJSON *) cJSON_ParseWithOpts(const char *value, const char **return_parse_end, cJSON_bool require_null_terminated);
|
||||||
|
|
||||||
CJSON_PUBLIC(void) cJSON_Minify(char *json);
|
CJSON_PUBLIC(void) cJSON_Minify(char *json);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user