Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
grpc_core::Json Class Reference

#include <json.h>

Public Types

using Array = std::vector< Json >
 
using Object = std::map< std::string, Json >
 
enum  Type {
  Type::JSON_NULL, Type::JSON_TRUE, Type::JSON_FALSE, Type::NUMBER,
  Type::STRING, Type::OBJECT, Type::ARRAY
}
 

Public Member Functions

const Arrayarray_value () const
 
std::string Dump (int indent=0) const
 
 Json ()=default
 
 Json (Array &&array)
 
 Json (bool b)
 
 Json (char *string, bool is_number=false)
 
 Json (const Array &array)
 
 Json (const char *string, bool is_number=false)
 
 Json (const Json &other)
 
 Json (const Object &object)
 
 Json (const std::string &string, bool is_number=false)
 
 Json (Json &&other) noexcept
 
template<typename NumericType >
 Json (NumericType number)
 
 Json (Object &&object)
 
 Json (std::string &&string)
 
Arraymutable_array ()
 
Objectmutable_object ()
 
std::string * mutable_string_value ()
 
const Objectobject_value () const
 
bool operator!= (const Json &other) const
 
Jsonoperator= (Array &&array)
 
Jsonoperator= (bool b)
 
Jsonoperator= (char *string)
 
Jsonoperator= (const Array &array)
 
Jsonoperator= (const char *string)
 
Jsonoperator= (const Json &other)
 
Jsonoperator= (const Object &object)
 
Jsonoperator= (const std::string &string)
 
Jsonoperator= (Json &&other) noexcept
 
template<typename NumericType >
Jsonoperator= (NumericType number)
 
Jsonoperator= (Object &&object)
 
Jsonoperator= (std::string &&string)
 
bool operator== (const Json &other) const
 
const std::string & string_value () const
 
Type type () const
 

Static Public Member Functions

static Json Parse (absl::string_view json_str, grpc_error_handle *error)
 

Private Member Functions

void CopyFrom (const Json &other)
 
void MoveFrom (Json &&other)
 

Private Attributes

Array array_value_
 
Object object_value_
 
std::string string_value_
 
Type type_ = Type::JSON_NULL
 

Detailed Description

Definition at line 37 of file src/core/lib/json/json.h.

Member Typedef Documentation

◆ Array

using grpc_core::Json::Array = std::vector<Json>

Definition at line 55 of file src/core/lib/json/json.h.

◆ Object

using grpc_core::Json::Object = std::map<std::string, Json>

Definition at line 54 of file src/core/lib/json/json.h.

Member Enumeration Documentation

◆ Type

enum grpc_core::Json::Type
strong
Enumerator
JSON_NULL 
JSON_TRUE 
JSON_FALSE 
NUMBER 
STRING 
OBJECT 
ARRAY 

Definition at line 44 of file src/core/lib/json/json.h.

Constructor & Destructor Documentation

◆ Json() [1/13]

grpc_core::Json::Json ( )
default

◆ Json() [2/13]

grpc_core::Json::Json ( const Json other)
inline

Definition at line 63 of file src/core/lib/json/json.h.

◆ Json() [3/13]

grpc_core::Json::Json ( Json &&  other)
inlinenoexcept

Definition at line 70 of file src/core/lib/json/json.h.

◆ Json() [4/13]

grpc_core::Json::Json ( const std::string &  string,
bool  is_number = false 
)
inline

Definition at line 79 of file src/core/lib/json/json.h.

◆ Json() [5/13]

grpc_core::Json::Json ( const char *  string,
bool  is_number = false 
)
inline

Definition at line 89 of file src/core/lib/json/json.h.

◆ Json() [6/13]

grpc_core::Json::Json ( char *  string,
bool  is_number = false 
)
inline

Definition at line 96 of file src/core/lib/json/json.h.

◆ Json() [7/13]

grpc_core::Json::Json ( std::string &&  string)
inline

Definition at line 105 of file src/core/lib/json/json.h.

◆ Json() [8/13]

grpc_core::Json::Json ( bool  b)
inline

Definition at line 115 of file src/core/lib/json/json.h.

◆ Json() [9/13]

template<typename NumericType >
grpc_core::Json::Json ( NumericType  number)
inline

Definition at line 124 of file src/core/lib/json/json.h.

◆ Json() [10/13]

grpc_core::Json::Json ( const Object object)
inline

Definition at line 135 of file src/core/lib/json/json.h.

◆ Json() [11/13]

grpc_core::Json::Json ( Object &&  object)
inline

Definition at line 144 of file src/core/lib/json/json.h.

◆ Json() [12/13]

grpc_core::Json::Json ( const Array array)
inline

Definition at line 154 of file src/core/lib/json/json.h.

◆ Json() [13/13]

grpc_core::Json::Json ( Array &&  array)
inline

Definition at line 163 of file src/core/lib/json/json.h.

Member Function Documentation

◆ array_value()

const Array& grpc_core::Json::array_value ( ) const
inline

Definition at line 179 of file src/core/lib/json/json.h.

◆ CopyFrom()

void grpc_core::Json::CopyFrom ( const Json other)
inlineprivate

Definition at line 204 of file src/core/lib/json/json.h.

◆ Dump()

std::string grpc_core::Json::Dump ( int  indent = 0) const

Definition at line 336 of file json_writer.cc.

◆ MoveFrom()

void grpc_core::Json::MoveFrom ( Json &&  other)
inlineprivate

Definition at line 222 of file src/core/lib/json/json.h.

◆ mutable_array()

Array* grpc_core::Json::mutable_array ( )
inline

Definition at line 180 of file src/core/lib/json/json.h.

◆ mutable_object()

Object* grpc_core::Json::mutable_object ( )
inline

Definition at line 178 of file src/core/lib/json/json.h.

◆ mutable_string_value()

std::string* grpc_core::Json::mutable_string_value ( )
inline

Definition at line 176 of file src/core/lib/json/json.h.

◆ object_value()

const Object& grpc_core::Json::object_value ( ) const
inline

Definition at line 177 of file src/core/lib/json/json.h.

◆ operator!=()

bool grpc_core::Json::operator!= ( const Json other) const
inline

Definition at line 201 of file src/core/lib/json/json.h.

◆ operator=() [1/12]

Json& grpc_core::Json::operator= ( Array &&  array)
inline

Definition at line 164 of file src/core/lib/json/json.h.

◆ operator=() [2/12]

Json& grpc_core::Json::operator= ( bool  b)
inline

Definition at line 116 of file src/core/lib/json/json.h.

◆ operator=() [3/12]

Json& grpc_core::Json::operator= ( char *  string)
inline

Definition at line 98 of file src/core/lib/json/json.h.

◆ operator=() [4/12]

Json& grpc_core::Json::operator= ( const Array array)
inline

Definition at line 155 of file src/core/lib/json/json.h.

◆ operator=() [5/12]

Json& grpc_core::Json::operator= ( const char *  string)
inline

Definition at line 91 of file src/core/lib/json/json.h.

◆ operator=() [6/12]

Json& grpc_core::Json::operator= ( const Json other)
inline

Definition at line 64 of file src/core/lib/json/json.h.

◆ operator=() [7/12]

Json& grpc_core::Json::operator= ( const Object object)
inline

Definition at line 136 of file src/core/lib/json/json.h.

◆ operator=() [8/12]

Json& grpc_core::Json::operator= ( const std::string &  string)
inline

Definition at line 81 of file src/core/lib/json/json.h.

◆ operator=() [9/12]

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

Definition at line 71 of file src/core/lib/json/json.h.

◆ operator=() [10/12]

template<typename NumericType >
Json& grpc_core::Json::operator= ( NumericType  number)
inline

Definition at line 127 of file src/core/lib/json/json.h.

◆ operator=() [11/12]

Json& grpc_core::Json::operator= ( Object &&  object)
inline

Definition at line 146 of file src/core/lib/json/json.h.

◆ operator=() [12/12]

Json& grpc_core::Json::operator= ( std::string &&  string)
inline

Definition at line 107 of file src/core/lib/json/json.h.

◆ operator==()

bool grpc_core::Json::operator== ( const Json other) const
inline

Definition at line 182 of file src/core/lib/json/json.h.

◆ Parse()

Json grpc_core::Json::Parse ( absl::string_view  json_str,
grpc_error_handle error 
)
static

Definition at line 899 of file json_reader.cc.

◆ string_value()

const std::string& grpc_core::Json::string_value ( ) const
inline

Definition at line 175 of file src/core/lib/json/json.h.

◆ type()

Type grpc_core::Json::type ( ) const
inline

Definition at line 174 of file src/core/lib/json/json.h.

Member Data Documentation

◆ array_value_

Array grpc_core::Json::array_value_
private

Definition at line 244 of file src/core/lib/json/json.h.

◆ object_value_

Object grpc_core::Json::object_value_
private

Definition at line 243 of file src/core/lib/json/json.h.

◆ string_value_

std::string grpc_core::Json::string_value_
private

Definition at line 242 of file src/core/lib/json/json.h.

◆ type_

Type grpc_core::Json::type_ = Type::JSON_NULL
private

Definition at line 241 of file src/core/lib/json/json.h.


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


grpc
Author(s):
autogenerated on Fri May 16 2025 03:03:36