xgboost
Public Member Functions | Static Public Member Functions | Friends | List of all members
xgboost::Json Class Reference

Data structure representing JSON format. More...

#include <json.h>

Collaboration diagram for xgboost::Json:
Collaboration graph

Public Member Functions

 Json ()=default
 
 Json (JsonNumber number)
 
Jsonoperator= (JsonNumber number)
 
 Json (JsonInteger integer)
 
Jsonoperator= (JsonInteger integer)
 
 Json (JsonArray &&list)
 
Jsonoperator= (JsonArray &&array)
 
template<typename T , Value::ValueKind kind>
 Json (JsonTypedArray< T, kind > &&list)
 
template<typename T , Value::ValueKind kind>
Jsonoperator= (JsonTypedArray< T, kind > &&array)
 
 Json (JsonObject &&object)
 
Jsonoperator= (JsonObject &&object)
 
 Json (JsonString &&str)
 
Jsonoperator= (JsonString &&str)
 
 Json (JsonBoolean boolean)
 
Jsonoperator= (JsonBoolean boolean)
 
 Json (JsonNull null)
 
Jsonoperator= (JsonNull null)
 
 Json (Json const &other)=default
 
Jsonoperator= (Json const &other)=default
 
 Json (Json &&other) noexcept
 
Jsonoperator= (Json &&other) noexcept
 
Jsonoperator[] (std::string const &key) const
 Index Json object with a std::string, used for Json Object. More...
 
Jsonoperator[] (int ind) const
 Index Json object with int, used for Json Array. More...
 
Value const & GetValue () const &
 Return the reference to stored Json value. More...
 
Value const & GetValue () &&
 
ValueGetValue () &
 
bool operator== (Json const &rhs) const
 
IntrusivePtr< Value > const & Ptr () const
 

Static Public Member Functions

static Json Load (StringView str, std::ios::openmode mode=std::ios::in)
 Decode the JSON object. Optional parameter mode for choosing between text and binary (ubjson) input. More...
 
static Json Load (JsonReader *reader)
 Pass your own JsonReader. More...
 
static void Dump (Json json, std::string *out, std::ios::openmode mode=std::ios::out)
 Encode the JSON object. Optional parameter mode for choosing between text and binary (ubjson) output. More...
 
static void Dump (Json json, std::vector< char > *out, std::ios::openmode mode=std::ios::out)
 
static void Dump (Json json, JsonWriter *writer)
 Use your own JsonWriter. More...
 

Friends

std::ostream & operator<< (std::ostream &os, Json const &j)
 

Detailed Description

Data structure representing JSON format.

Limitation: UTF-8 is not properly supported. Code points above ASCII are invalid.

Examples:

// Create a JSON object.
Json object { Object() };
// Assign key "key" with a JSON string "Value";
object["key"] = String("Value");
// Assign key "arr" with a empty JSON Array;
object["arr"] = Array();
Json()=default
JsonObject Object
Definition: json.h:590
JsonArray Array
Definition: json.h:591
JsonString String
Definition: json.h:595

Constructor & Destructor Documentation

◆ Json() [1/11]

xgboost::Json::Json ( )
default

◆ Json() [2/11]

xgboost::Json::Json ( JsonNumber  number)
inlineexplicit

◆ Json() [3/11]

xgboost::Json::Json ( JsonInteger  integer)
inlineexplicit

◆ Json() [4/11]

xgboost::Json::Json ( JsonArray &&  list)
inlineexplicit

◆ Json() [5/11]

template<typename T , Value::ValueKind kind>
xgboost::Json::Json ( JsonTypedArray< T, kind > &&  list)
inlineexplicit

◆ Json() [6/11]

xgboost::Json::Json ( JsonObject &&  object)
inlineexplicit

◆ Json() [7/11]

xgboost::Json::Json ( JsonString &&  str)
inlineexplicit

◆ Json() [8/11]

xgboost::Json::Json ( JsonBoolean  boolean)
inlineexplicit

◆ Json() [9/11]

xgboost::Json::Json ( JsonNull  null)
inlineexplicit

◆ Json() [10/11]

xgboost::Json::Json ( Json const &  other)
default

◆ Json() [11/11]

xgboost::Json::Json ( Json &&  other)
inlinenoexcept

Member Function Documentation

◆ Dump() [1/3]

static void xgboost::Json::Dump ( Json  json,
JsonWriter writer 
)
static

Use your own JsonWriter.

◆ Dump() [2/3]

static void xgboost::Json::Dump ( Json  json,
std::string *  out,
std::ios::openmode  mode = std::ios::out 
)
static

Encode the JSON object. Optional parameter mode for choosing between text and binary (ubjson) output.

◆ Dump() [3/3]

static void xgboost::Json::Dump ( Json  json,
std::vector< char > *  out,
std::ios::openmode  mode = std::ios::out 
)
static

◆ GetValue() [1/3]

Value& xgboost::Json::GetValue ( ) &
inline

◆ GetValue() [2/3]

Value const& xgboost::Json::GetValue ( ) &&
inline

◆ GetValue() [3/3]

Value const& xgboost::Json::GetValue ( ) const &
inline

Return the reference to stored Json value.

◆ Load() [1/2]

static Json xgboost::Json::Load ( JsonReader reader)
static

Pass your own JsonReader.

◆ Load() [2/2]

static Json xgboost::Json::Load ( StringView  str,
std::ios::openmode  mode = std::ios::in 
)
static

Decode the JSON object. Optional parameter mode for choosing between text and binary (ubjson) input.

◆ operator=() [1/10]

Json& xgboost::Json::operator= ( Json &&  other)
inlinenoexcept

◆ operator=() [2/10]

Json& xgboost::Json::operator= ( Json const &  other)
default

◆ operator=() [3/10]

Json& xgboost::Json::operator= ( JsonArray &&  array)
inline

◆ operator=() [4/10]

Json& xgboost::Json::operator= ( JsonBoolean  boolean)
inline

◆ operator=() [5/10]

Json& xgboost::Json::operator= ( JsonInteger  integer)
inline

◆ operator=() [6/10]

Json& xgboost::Json::operator= ( JsonNull  null)
inline

◆ operator=() [7/10]

Json& xgboost::Json::operator= ( JsonNumber  number)
inline

◆ operator=() [8/10]

Json& xgboost::Json::operator= ( JsonObject &&  object)
inline

◆ operator=() [9/10]

Json& xgboost::Json::operator= ( JsonString &&  str)
inline

◆ operator=() [10/10]

template<typename T , Value::ValueKind kind>
Json& xgboost::Json::operator= ( JsonTypedArray< T, kind > &&  array)
inline

◆ operator==()

bool xgboost::Json::operator== ( Json const &  rhs) const
inline

◆ operator[]() [1/2]

Json& xgboost::Json::operator[] ( int  ind) const
inline

Index Json object with int, used for Json Array.

◆ operator[]() [2/2]

Json& xgboost::Json::operator[] ( std::string const &  key) const
inline

Index Json object with a std::string, used for Json Object.

◆ Ptr()

IntrusivePtr<Value> const& xgboost::Json::Ptr ( ) const
inline

Friends And Related Function Documentation

◆ operator<<

std::ostream& operator<< ( std::ostream &  os,
Json const &  j 
)
friend

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