JSON
SPA » Utilities

Relaxed JSON variant parsing. More...

## Files

file | json.h
| `spa/utils/json.h`

## Data Structures

struct | spa_json

## Macros

#define | SPA_JSON_INIT(data, size) (struct spa_json) { (data), (data)+(size), }
#define | SPA_JSON_ENTER(iter) (struct spa_json) { (iter)->cur, (iter)->end, (iter), }
#define | SPA_JSON_SAVE(iter) (struct spa_json) { (iter)->cur, (iter)->end, }

## Functions

static void | spa_json_init (struct spa_json *iter, const char *data, size_t size)
static void | spa_json_enter (struct spa_json *iter, struct spa_json *sub)
static int | spa_json_next (struct spa_json *iter, const char **value)
| Get the next token. More...
static int | spa_json_enter_container (struct spa_json *iter, struct spa_json *sub, char type)
static int | spa_json_is_container (const char *val, int len)
static int | spa_json_container_len (struct spa_json *iter, const char *value, int len)
static int | spa_json_is_object (const char *val, int len)
static int | spa_json_enter_object (struct spa_json *iter, struct spa_json *sub)
static bool | spa_json_is_array (const char *val, int len)
static int | spa_json_enter_array (struct spa_json *iter, struct spa_json *sub)
static bool | spa_json_is_null (const char *val, int len)
static int | spa_json_parse_float (const char *val, int len, float *result)
static bool | spa_json_is_float (const char *val, int len)
static int | spa_json_get_float (struct spa_json *iter, float *res)
static int | spa_json_parse_int (const char *val, int len, int *result)
static bool | spa_json_is_int (const char *val, int len)
static int | spa_json_get_int (struct spa_json *iter, int *res)
static bool | spa_json_is_true (const char *val, int len)
static bool | spa_json_is_false (const char *val, int len)
static bool | spa_json_is_bool (const char *val, int len)
static int | spa_json_parse_bool (const char *val, int len, bool *result)
static int | spa_json_get_bool (struct spa_json *iter, bool *res)
static bool | spa_json_is_string (const char *val, int len)
static int | spa_json_parse_stringn (const char *val, int len, char *result, int maxlen)
static int | spa_json_parse_string (const char *val, int len, char *result)
static int | spa_json_get_string (struct spa_json *iter, char *res, int maxlen)
static int | spa_json_encode_string (char *str, int size, const char *val)

## Detailed Description

Relaxed JSON variant parsing.

## Macro Definition Documentation

## SPA_JSON_INIT

#define SPA_JSON_INIT | ( |  | data,
|  |  | size
| ) |  | (struct spa_json) { (data), (data)+(size), }

## SPA_JSON_ENTER

#define SPA_JSON_ENTER | ( |  | iter | ) | (struct spa_json) { (iter)->cur, (iter)->end, (iter), }

## SPA_JSON_SAVE

#define SPA_JSON_SAVE | ( |  | iter | ) | (struct spa_json) { (iter)->cur, (iter)->end, }

## Function Documentation

## spa_json_init()

static void spa_json_init | ( | struct spa_json * | iter,
|  | const char * | data,
|  | size_t | size
| ) |  |

inline static

## spa_json_enter()

static void spa_json_enter | ( | struct spa_json * | iter,
|  | struct spa_json * | sub
| ) |  |

inline static

## spa_json_next()

static int spa_json_next | ( | struct spa_json * | iter,
|  | const char ** | value
| ) |  |

inline static

Get the next token.

value points to the token and the return value is the length.

## spa_json_enter_container()

static int spa_json_enter_container | ( | struct spa_json * | iter,
|  | struct spa_json * | sub,
|  | char | type
| ) |  |

inline static

## spa_json_is_container()

static int spa_json_is_container | ( | const char * | val,
|  | int | len
| ) |  |

inline static

## spa_json_container_len()

static int spa_json_container_len | ( | struct spa_json * | iter,
|  | const char * | value,
|  | int | len
| ) |  |

inline static

## spa_json_is_object()

static int spa_json_is_object | ( | const char * | val,
|  | int | len
| ) |  |

inline static

## spa_json_enter_object()

static int spa_json_enter_object | ( | struct spa_json * | iter,
|  | struct spa_json * | sub
| ) |  |

inline static

## spa_json_is_array()

static bool spa_json_is_array | ( | const char * | val,
|  | int | len
| ) |  |

inline static

## spa_json_enter_array()

static int spa_json_enter_array | ( | struct spa_json * | iter,
|  | struct spa_json * | sub
| ) |  |

inline static

## spa_json_is_null()

static bool spa_json_is_null | ( | const char * | val,
|  | int | len
| ) |  |

inline static

## spa_json_parse_float()

static int spa_json_parse_float | ( | const char * | val,
|  | int | len,
|  | float * | result
| ) |  |

inline static

## spa_json_is_float()

static bool spa_json_is_float | ( | const char * | val,
|  | int | len
| ) |  |

inline static

## spa_json_get_float()

static int spa_json_get_float | ( | struct spa_json * | iter,
|  | float * | res
| ) |  |

inline static

## spa_json_parse_int()

static int spa_json_parse_int | ( | const char * | val,
|  | int | len,
|  | int * | result
| ) |  |

inline static

## spa_json_is_int()

static bool spa_json_is_int | ( | const char * | val,
|  | int | len
| ) |  |

inline static

## spa_json_get_int()

static int spa_json_get_int | ( | struct spa_json * | iter,
|  | int * | res
| ) |  |

inline static

## spa_json_is_true()

static bool spa_json_is_true | ( | const char * | val,
|  | int | len
| ) |  |

inline static

## spa_json_is_false()

static bool spa_json_is_false | ( | const char * | val,
|  | int | len
| ) |  |

inline static

## spa_json_is_bool()

static bool spa_json_is_bool | ( | const char * | val,
|  | int | len
| ) |  |

inline static

## spa_json_parse_bool()

static int spa_json_parse_bool | ( | const char * | val,
|  | int | len,
|  | bool * | result
| ) |  |

inline static

## spa_json_get_bool()

static int spa_json_get_bool | ( | struct spa_json * | iter,
|  | bool * | res
| ) |  |

inline static

## spa_json_is_string()

static bool spa_json_is_string | ( | const char * | val,
|  | int | len
| ) |  |

inline static

## spa_json_parse_stringn()

static int spa_json_parse_stringn | ( | const char * | val,
|  | int | len,
|  | char * | result,
|  | int | maxlen
| ) |  |

inline static

## spa_json_parse_string()

static int spa_json_parse_string | ( | const char * | val,
|  | int | len,
|  | char * | result
| ) |  |

inline static

## spa_json_get_string()

static int spa_json_get_string | ( | struct spa_json * | iter,
|  | char * | res,
|  | int | maxlen
| ) |  |

inline static

## spa_json_encode_string()

static int spa_json_encode_string | ( | char * | str,
|  | int | size,
|  | const char * | val
| ) |  |

inline static