N_JSON * n_json_parse(const char *text)
Parse a JSON document from a NUL-terminated string.
N_JSON * n_json_array_at(const N_JSON *arr, size_t i)
Get an array element by index.
const char * n_json_as_string(const N_JSON *v, const char *dflt)
Get the string value of a node itself (e.g.
char * n_json_string_dup(const N_JSON *obj, const char *key)
Duplicate a string member (caller frees), or NULL when absent.
size_t n_json_array_size(const N_JSON *arr)
Number of elements in an array node.
long n_json_int(const N_JSON *obj, const char *key, long dflt)
Get a numeric member as a long, or a default when absent/not a number.
const char * n_json_string(const N_JSON *obj, const char *key, const char *dflt)
Get a string member, or a default when absent/not a string.
int n_json_bool(const N_JSON *obj, const char *key, int dflt)
Get a boolean member, or a default when absent/not a boolean.
int n_json_is_object(const N_JSON *v)
Report whether a node is a JSON object.
void n_json_free(N_JSON **root)
Free a JSON tree and NULL the caller's pointer.
struct N_JSON N_JSON
Opaque JSON node (a cJSON node under the hood).
N_JSON * n_json_parse_file(const char *path)
Parse a JSON document from a file.
int n_json_is_array(const N_JSON *v)
Report whether a node is a JSON array.
N_JSON * n_json_get(const N_JSON *obj, const char *key)
Get a child member of an object by key (case-sensitive).