Gaia-ECS v0.9.3
A simple and powerful entity component system
Loading...
Searching...
No Matches
gaia::ser::ser_json Class Reference

Lightweight JSON serializer/deserializer. More...

#include <ser_json.h>

Public Member Functions

 ser_json (const char *json, uint32_t len)
 
template<size_t N>
 ser_json (const char(&json)[N])
 
void reset_input (const char *json, uint32_t len)
 Sets an input JSON buffer for parsing.
 
template<size_t N>
void reset_input (const char(&json)[N])
 
void clear ()
 Clears output JSON text and writer context.
 
GAIA_NODISCARD const json_strstr () const
 Returns currently emitted output text.
 
GAIA_NODISCARD bool eof () const
 Returns true if parser has reached end of input.
 
GAIA_NODISCARD char peek () const
 Returns next non-consumed character.
 
void ws ()
 Skips whitespace in parser input.
 
GAIA_NODISCARD const char * pos () const
 
GAIA_NODISCARD const char * end () const
 
void begin_object ()
 
void end_object ()
 
void begin_array ()
 
void end_array ()
 
void key (const char *name, uint32_t len=0)
 
void value_null ()
 
void value_bool (bool v)
 
template<typename TInt , typename = std::enable_if_t<std::is_integral_v<TInt> && !std::is_same_v<TInt, bool>>>
void value_int (TInt v)
 
void value_float (float v)
 
void value_float (double v)
 
void value_string (const char *str, uint32_t len=0)
 
bool consume (char ch)
 
bool expect (char ch)
 
bool parse_literal (const char *lit)
 
bool parse_string_view (json_str_view &out, bool *fromScratch=nullptr)
 
bool parse_string (json_str &out)
 
bool parse_string_eq (const char *literal)
 
bool parse_number (double &value)
 
bool parse_bool (bool &value)
 
bool parse_null ()
 
bool skip_value ()
 

Detailed Description

Lightweight JSON serializer/deserializer.

  • write mode: emits JSON text into an internal string
  • read mode: parses JSON text from a provided input buffer It intentionally stays low-level and allocation-light (no DOM tree).

The documentation for this class was generated from the following file: