json.ch
Declarations
Public Only
Publicstruct ParseResult
struct ParseResult
ParseResult: return status
Publicfunction Err
func Err(p : size_t, m : *char) : ParseResult
Publicinterface JsonSaxHandler
interface JsonSaxHandler
Publicfunction on_bool
func on_bool(self : &JsonSaxHandler, value : bool) : void
Publicfunction on_number
func on_number(self : &JsonSaxHandler, data : *char, len : size_t) : void
Publicfunction on_string
func on_string(self : &JsonSaxHandler, data : *char, len : size_t) : void
Publicfunction on_object_begin
func on_object_begin(self : &JsonSaxHandler) : void
Structural callbacks
Publicfunction on_object_end
func on_object_end(self : &JsonSaxHandler) : void
Publicfunction on_array_begin
func on_array_begin(self : &JsonSaxHandler) : void
Publicfunction on_array_end
func on_array_end(self : &JsonSaxHandler) : void
Publicfunction on_key
func on_key(self : &JsonSaxHandler, data : *char, len : size_t) : void
function append_utf8
func append_utf8(cp : uint32_t, out : *char, outpos : &size_t, outcap : size_t) : bool
Helper: append codepoint as UTF-8 into out buffer. Return false if not enough space.
Publicstruct JsonParser
struct JsonParser
Publicfunction make
func make(max_depth_ : size_t, max_string_ : size_t) : JsonParser
Publicfunction parse
function at_end
func at_end(self : &JsonParser) : bool
function cur
func cur(self : &JsonParser) : char
function advance
func advance(self : &JsonParser, n : size_t) : void
function skip_ws
func skip_ws(self : &JsonParser) : void
function parse_value
function parse_literal
parse literal like true/false/null
function parse_number
function parse_object
function parse_array
function parse_string_inplace
func parse_string_inplace(self : &JsonParser, out : *char, outcap : size_t, outlen : &size_t) : ParseResult
parse a JSON string starting at current pos (expects '"').
Unescape into provided out buffer with capacity outcap. outlen set to length.
Uses strict rules: control characters (0x00-0x1F) are forbidden.