GDAL
Public Types | Public Member Functions | Friends | List of all members
CPLJSONObject Class Reference

The CPLJSONArray class holds JSON object from CPLJSONDocument. More...

#include <cpl_json.h>

Inheritance diagram for CPLJSONObject:
CPLJSONArray

Public Types

enum class  Type {
  Unknown , Null , Object , Array ,
  Boolean , String , Integer , Long ,
  Double
}
 Json object types.
 
enum class  PrettyFormat { Plain , Spaced , Pretty }
 Json object format to string options. More...
 

Public Member Functions

void Add (const std::string &osName, const std::string &osValue)
 Add new key - value pair to json object. More...
 
void Add (const std::string &osName, const char *pszValue)
 Add new key - value pair to json object. More...
 
void Add (const std::string &osName, double dfValue)
 Add new key - value pair to json object. More...
 
void Add (const std::string &osName, int nValue)
 Add new key - value pair to json object. More...
 
void Add (const std::string &osName, GInt64 nValue)
 Add new key - value pair to json object. More...
 
void Add (const std::string &osName, uint64_t nValue)
 Add new key - value pair to json object. More...
 
void Add (const std::string &osName, const CPLJSONArray &oValue)
 Add new key - value pair to json object. More...
 
void Add (const std::string &osName, const CPLJSONObject &oValue)
 Add new key - value pair to json object. More...
 
void AddNoSplitName (const std::string &osName, const CPLJSONObject &oValue)
 Add new key - value pair to json object. More...
 
void Add (const std::string &osName, bool bValue)
 Add new key - value pair to json object. More...
 
void AddNull (const std::string &osName)
 Add new key - null pair to json object. More...
 
void Set (const std::string &osName, const std::string &osValue)
 Change value by key. More...
 
void Set (const std::string &osName, const char *pszValue)
 Change value by key. More...
 
void Set (const std::string &osName, double dfValue)
 Change value by key. More...
 
void Set (const std::string &osName, int nValue)
 Change value by key. More...
 
void Set (const std::string &osName, GInt64 nValue)
 Change value by key. More...
 
void Set (const std::string &osName, uint64_t nValue)
 Change value by key. More...
 
void Set (const std::string &osName, bool bValue)
 Change value by key. More...
 
void SetNull (const std::string &osName)
 Change value by key. More...
 
std::string GetString (const std::string &osName, const std::string &osDefault="") const
 Get value by key. More...
 
double GetDouble (const std::string &osName, double dfDefault=0.0) const
 Get value by key. More...
 
int GetInteger (const std::string &osName, int nDefault=0) const
 Get value by key. More...
 
GInt64 GetLong (const std::string &osName, GInt64 nDefault=0) const
 Get value by key. More...
 
bool GetBool (const std::string &osName, bool bDefault=false) const
 Get value by key. More...
 
std::string ToString (const std::string &osDefault="") const
 Get value. More...
 
double ToDouble (double dfDefault=0.0) const
 Get value. More...
 
int ToInteger (int nDefault=0) const
 Get value. More...
 
GInt64 ToLong (GInt64 nDefault=0) const
 Get value. More...
 
bool ToBool (bool bDefault=false) const
 Get value. More...
 
CPLJSONArray ToArray () const
 Get value. More...
 
std::string Format (PrettyFormat eFormat) const
 Stringify object to json format. More...
 
void Delete (const std::string &osName)
 Delete json object by key. More...
 
void DeleteNoSplitName (const std::string &osName)
 Delete json object by key (without splitting on /) More...
 
CPLJSONArray GetArray (const std::string &osName) const
 Get value by key. More...
 
CPLJSONObject GetObj (const std::string &osName) const
 Get value by key. More...
 
CPLJSONObject operator[] (const std::string &osName) const
 Get value by key. More...
 
Type GetType () const
 Get json object type. More...
 
std::vector< CPLJSONObjectGetChildren () const
 Get json object children. More...
 
bool IsValid () const
 Check if json object valid. More...
 
void Deinit ()
 Decrement reference counter and make pointer NULL. More...
 

Friends

class CPLJSONArray
 
class CPLJSONDocument
 

Detailed Description

The CPLJSONArray class holds JSON object from CPLJSONDocument.

Member Enumeration Documentation

◆ PrettyFormat

enum class CPLJSONObject::PrettyFormat
strong

Json object format to string options.

Enumerator
Plain 

No extra whitespace or formatting applied.

Spaced 

Minimal whitespace inserted.

Pretty 

Formatted output.

Member Function Documentation

◆ Add() [1/9]

void CPLJSONObject::Add ( const std::string &  osName,
bool  bValue 
)

Add new key - value pair to json object.

Parameters
osNameKey name.
bValueBoolean value.
Since
GDAL 2.3

◆ Add() [2/9]

void CPLJSONObject::Add ( const std::string &  osName,
const char *  pszValue 
)

Add new key - value pair to json object.

Parameters
osNameKey name.
pszValueString value.
Since
GDAL 2.3

◆ Add() [3/9]

void CPLJSONObject::Add ( const std::string &  osName,
const CPLJSONArray oValue 
)

Add new key - value pair to json object.

Parameters
osNameKey name.
oValueArray value.
Since
GDAL 2.3

◆ Add() [4/9]

void CPLJSONObject::Add ( const std::string &  osName,
const CPLJSONObject oValue 
)

Add new key - value pair to json object.

Parameters
osNameKey name.
oValueJson object value.
Since
GDAL 2.3

◆ Add() [5/9]

void CPLJSONObject::Add ( const std::string &  osName,
const std::string &  osValue 
)

Add new key - value pair to json object.

Parameters
osNameKey name.
osValueString value.
Since
GDAL 2.3

◆ Add() [6/9]

void CPLJSONObject::Add ( const std::string &  osName,
double  dfValue 
)

Add new key - value pair to json object.

Parameters
osNameKey name.
dfValueDouble value.
Since
GDAL 2.3

◆ Add() [7/9]

void CPLJSONObject::Add ( const std::string &  osName,
GInt64  nValue 
)

Add new key - value pair to json object.

Parameters
osNameKey name.
nValueLong value.
Since
GDAL 2.3

◆ Add() [8/9]

void CPLJSONObject::Add ( const std::string &  osName,
int  nValue 
)

Add new key - value pair to json object.

Parameters
osNameKey name.
nValueInteger value.
Since
GDAL 2.3

◆ Add() [9/9]

void CPLJSONObject::Add ( const std::string &  osName,
uint64_t  nValue 
)

Add new key - value pair to json object.

Parameters
osNameKey name.
nValueuint64_t value.
Since
GDAL 3.8

◆ AddNoSplitName()

void CPLJSONObject::AddNoSplitName ( const std::string &  osName,
const CPLJSONObject oValue 
)

Add new key - value pair to json object.

Parameters
osNameKey name (do not split it on '/')
oValueJson object value.
Since
GDAL 3.2

◆ AddNull()

void CPLJSONObject::AddNull ( const std::string &  osName)

Add new key - null pair to json object.

Parameters
osNameKey name.
Since
GDAL 2.3

◆ Deinit()

void CPLJSONObject::Deinit ( )

Decrement reference counter and make pointer NULL.

A json object will become invalid.

Since
GDAL 2.3

◆ Delete()

void CPLJSONObject::Delete ( const std::string &  osName)

Delete json object by key.

Parameters
osNameKey name.
Since
GDAL 2.3

◆ DeleteNoSplitName()

void CPLJSONObject::DeleteNoSplitName ( const std::string &  osName)

Delete json object by key (without splitting on /)

Parameters
osNameKey name.
Since
GDAL 3.4

◆ Format()

std::string CPLJSONObject::Format ( PrettyFormat  eFormat) const

Stringify object to json format.

Parameters
eFormatFormat type,
Returns
A string in JSON format.
Since
GDAL 2.3

◆ GetArray()

CPLJSONArray CPLJSONObject::GetArray ( const std::string &  osName) const

Get value by key.

Parameters
osNameKey name.
Returns
Json array object.
Since
GDAL 2.3

◆ GetBool()

bool CPLJSONObject::GetBool ( const std::string &  osName,
bool  bDefault = false 
) const

Get value by key.

Parameters
osNameKey name.
bDefaultDefault value.
Returns
Boolean value.
Since
GDAL 2.3

◆ GetChildren()

std::vector< CPLJSONObject > CPLJSONObject::GetChildren ( ) const

Get json object children.

This function is useful when keys is not know and need to iterate over json object items and get keys and values.

Returns
Array of CPLJSONObject class instance.
Since
GDAL 2.3

◆ GetDouble()

double CPLJSONObject::GetDouble ( const std::string &  osName,
double  dfDefault = 0.0 
) const

Get value by key.

Parameters
osNameKey name.
dfDefaultDefault value.
Returns
Double value.
Since
GDAL 2.3

◆ GetInteger()

int CPLJSONObject::GetInteger ( const std::string &  osName,
int  nDefault = 0 
) const

Get value by key.

Parameters
osNameKey name.
nDefaultDefault value.
Returns
Integer value.
Since
GDAL 2.3

◆ GetLong()

GInt64 CPLJSONObject::GetLong ( const std::string &  osName,
GInt64  nDefault = 0 
) const

Get value by key.

Parameters
osNameKey name.
nDefaultDefault value.
Returns
Long value.
Since
GDAL 2.3

◆ GetObj()

CPLJSONObject CPLJSONObject::GetObj ( const std::string &  osName) const

Get value by key.

Parameters
osNameKey name.
Returns
Json object.
Since
GDAL 2.3

◆ GetString()

std::string CPLJSONObject::GetString ( const std::string &  osName,
const std::string &  osDefault = "" 
) const

Get value by key.

Parameters
osNameKey name.
osDefaultDefault value.
Returns
String value.
Since
GDAL 2.3

◆ GetType()

CPLJSONObject::Type CPLJSONObject::GetType ( ) const

Get json object type.

Returns
Json object type.
Since
GDAL 2.3

◆ IsValid()

bool CPLJSONObject::IsValid ( ) const

Check if json object valid.

Returns
true if json object valid.
Since
GDAL 2.3

◆ operator[]()

CPLJSONObject CPLJSONObject::operator[] ( const std::string &  osName) const

Get value by key.

Parameters
osNameKey name.
Returns
Json object.
Since
GDAL 2.3

◆ Set() [1/7]

void CPLJSONObject::Set ( const std::string &  osName,
bool  bValue 
)

Change value by key.

Parameters
osNameKey name.
bValueBoolean value.
Since
GDAL 2.3

◆ Set() [2/7]

void CPLJSONObject::Set ( const std::string &  osName,
const char *  pszValue 
)

Change value by key.

Parameters
osNameKey name.
pszValueString value.
Since
GDAL 2.3

◆ Set() [3/7]

void CPLJSONObject::Set ( const std::string &  osName,
const std::string &  osValue 
)

Change value by key.

Parameters
osNameKey name.
osValueString value.
Since
GDAL 2.3

◆ Set() [4/7]

void CPLJSONObject::Set ( const std::string &  osName,
double  dfValue 
)

Change value by key.

Parameters
osNameKey name.
dfValueDouble value.
Since
GDAL 2.3

◆ Set() [5/7]

void CPLJSONObject::Set ( const std::string &  osName,
GInt64  nValue 
)

Change value by key.

Parameters
osNameKey name.
nValueLong value.
Since
GDAL 2.3

◆ Set() [6/7]

void CPLJSONObject::Set ( const std::string &  osName,
int  nValue 
)

Change value by key.

Parameters
osNameKey name.
nValueInteger value.
Since
GDAL 2.3

◆ Set() [7/7]

void CPLJSONObject::Set ( const std::string &  osName,
uint64_t  nValue 
)

Change value by key.

Parameters
osNameKey name.
nValueuint64_t value.
Since
GDAL 3.8

◆ SetNull()

void CPLJSONObject::SetNull ( const std::string &  osName)

Change value by key.

Parameters
osNameKey name.
Since
GDAL 2.3

◆ ToArray()

CPLJSONArray CPLJSONObject::ToArray ( ) const

Get value.

Returns
Array
Since
GDAL 2.3

◆ ToBool()

bool CPLJSONObject::ToBool ( bool  bDefault = false) const

Get value.

Parameters
bDefaultDefault value.
Returns
Boolean value.
Since
GDAL 2.3

◆ ToDouble()

double CPLJSONObject::ToDouble ( double  dfDefault = 0.0) const

Get value.

Parameters
dfDefaultDefault value.
Returns
Double value.
Since
GDAL 2.3

◆ ToInteger()

int CPLJSONObject::ToInteger ( int  nDefault = 0) const

Get value.

Parameters
nDefaultDefault value.
Returns
Integer value.
Since
GDAL 2.3

◆ ToLong()

GInt64 CPLJSONObject::ToLong ( GInt64  nDefault = 0) const

Get value.

Parameters
nDefaultDefault value.
Returns
Long value.
Since
GDAL 2.3

◆ ToString()

std::string CPLJSONObject::ToString ( const std::string &  osDefault = "") const

Get value.

Parameters
osDefaultDefault value.
Returns
String value.
Since
GDAL 2.3

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