class QPanda::RJson¶
Overview¶
a wrapper class of rapidjson. More…
#include <RJson.h> class RJson { public: // methods static int GetValue( const rapidjson::Value** value, const char* name, const rapidjson::Value* parent ); static int GetValue( const rapidjson::Value** value, const size_t idx, const rapidjson::Value* parent ); template <typename T> static int GetObject( const rapidjson::Value** value, T tag, const rapidjson::Value* parent ); template <typename T> static int GetArray( const rapidjson::Value** value, T tag, const rapidjson::Value* parent ); template <typename T> static int GetStr( std::string& str, T tag, const rapidjson::Value* parent ); template <typename T> static int GetBool( bool& n, T tag, const rapidjson::Value* parent ); template <typename T> static int GetInt(int& n, T tag, const rapidjson::Value* parent); template <typename T> static int GetDouble( double& n, T tag, const rapidjson::Value* parent ); template <typename T1, typename T2> static int GetValue( const rapidjson::Value** value, T1 t1, T2 t2, const rapidjson::Value* parent ); template <typename T1, typename T2> static int GetObject( const rapidjson::Value** value, T1 t1, T2 t2, const rapidjson::Value* parent ); template <typename T1, typename T2> static int GetArray( const rapidjson::Value** value, T1 t1, T2 t2, const rapidjson::Value* parent ); template <typename T1, typename T2> static int GetStr( std::string& str, T1 t1, T2 t2, const rapidjson::Value* parent ); template <typename T1, typename T2> static int GetBool( bool& n, T1 t1, T2 t2, const rapidjson::Value* parent ); template <typename T1, typename T2> static int GetInt( int& n, T1 t1, T2 t2, const rapidjson::Value* parent ); template <typename T1, typename T2> static int GetDouble( double& n, T1 t1, T2 t2, const rapidjson::Value* parent ); static int ToString(std::string& str, const rapidjson::Value* node); static std::string ToString(const rapidjson::Value* node); static bool parse(const std::string& filename, rapidjson::Document& doc); static bool validate( const std::string& filename, const std::string& config_schema, rapidjson::Document& doc ); };
Detailed Documentation¶
a wrapper class of rapidjson.
Methods¶
static int GetValue( const rapidjson::Value** value, const char* name, const rapidjson::Value* parent )
get the val by the name of a key
Parameters:
| rapidjson::Value** | Pointer of a pointer, pointer to the storage Memory address. |
| char* | the name of key |
| rapidjson::Value* | parent node pointer |
Returns:
int 0: on success, -1: others
static int GetValue( const rapidjson::Value** value, const size_t idx, const rapidjson::Value* parent )
get the val by index
Parameters:
| rapidjson::Value** | Pointer of a pointer, pointer to the storage Memory address. |
| size_t | the target index |
| rapidjson::Value* | parent node pointer |
Returns:
int 0: on success, -1: others
template <typename T> static int GetObject( const rapidjson::Value** value, T tag, const rapidjson::Value* parent )
get the object by tag
Parameters:
| rapidjson::Value** | Pointer of a pointer, pointer to the storage Memory address. |
| T | tag |
| rapidjson::Value* | parent node pointer |
Returns:
int 0: on success, -1: others
template <typename T> static int GetArray( const rapidjson::Value** value, T tag, const rapidjson::Value* parent )
get the array by tag
Parameters:
| rapidjson::Value** | Pointer of a pointer, pointer to the storage Memory address. |
| T | tag |
| rapidjson::Value* | parent node pointer |
Returns:
int 0: on success, -1: others
template <typename T> static int GetStr( std::string& str, T tag, const rapidjson::Value* parent )
get the string of tag
Parameters:
| std::string& | the string of tag |
| T | tag |
| rapidjson::Value* | parent node pointer |
Returns:
int 0: on success, -1: others
template <typename T> static int GetBool( bool& n, T tag, const rapidjson::Value* parent )
get the bool val of tag
Parameters:
| bool& | the bool val |
| T | tag |
| rapidjson::Value* | parent node pointer |
Returns:
int 0: on success, -1: others
template <typename T> static int GetInt( int& n, T tag, const rapidjson::Value* parent )
get the int val of tag
Parameters:
| int& | the int val |
| T | tag |
| rapidjson::Value* | parent node pointer |
Returns:
int 0: on success, -1: others
template <typename T> static int GetDouble( double& n, T tag, const rapidjson::Value* parent )
get the double val of tag
Parameters:
| double& | the double val |
| T | tag |
| rapidjson::Value* | parent node pointer |
Returns:
int 0: on success, -1: others
template <typename T1, typename T2> static int GetValue( const rapidjson::Value** value, T1 t1, T2 t2, const rapidjson::Value* parent )
get the val of t1.t2
Parameters:
| rapidjson::Value** | Pointer of a pointer, pointer to the storage Memory address. |
| T1 | t1 |
| T2 | t2 |
| rapidjson::Value* | parent node pointer |
Returns:
int 0: on success, -1: others
template <typename T1, typename T2> static int GetObject( const rapidjson::Value** value, T1 t1, T2 t2, const rapidjson::Value* parent )
get the object pointer of t1.t2
Parameters:
| rapidjson::Value** | Pointer of a pointer, pointer to the storage Memory address. |
| T1 | t1 |
| T2 | t2 |
| rapidjson::Value* | parent node pointer |
Returns:
int 0: on success, -1: others
template <typename T1, typename T2> static int GetArray( const rapidjson::Value** value, T1 t1, T2 t2, const rapidjson::Value* parent )
get the Array pointer of t1.t2
Parameters:
| rapidjson::Value** | Pointer of a pointer, pointer to the storage Memory address. |
| T1 | t1 |
| T2 | t2 |
| rapidjson::Value* | parent node pointer |
Returns:
int 0: on success, -1: others
template <typename T1, typename T2> static int GetStr( std::string& str, T1 t1, T2 t2, const rapidjson::Value* parent )
get the string of t1.t2
Parameters:
| std::string& | the target string |
| T1 | t1 |
| T2 | t2 |
| rapidjson::Value* | parent node pointer |
Returns:
int 0: on success, -1: others
template <typename T1, typename T2> static int GetBool( bool& n, T1 t1, T2 t2, const rapidjson::Value* parent )
get the bool val of t1.t2
Parameters:
| bool& | the target bool val |
| T1 | t1 |
| T2 | t2 |
| rapidjson::Value* | parent node pointer |
Returns:
int 0: on success, -1: others
template <typename T1, typename T2> static int GetInt( int& n, T1 t1, T2 t2, const rapidjson::Value* parent )
get the int val of t1.t2
Parameters:
| int& | the target int val |
| T1 | t1 |
| T2 | t2 |
| rapidjson::Value* | parent node pointer |
Returns:
int 0: on success, -1: others
template <typename T1, typename T2> static int GetDouble( double& n, T1 t1, T2 t2, const rapidjson::Value* parent )
get the double val of t1.t2
Parameters:
| double& | the target double val |
| T1 | t1 |
| T2 | t2 |
| rapidjson::Value* | parent node pointer |
Returns:
int 0: on success, -1: others
static int ToString(std::string& str, const rapidjson::Value* node)
node data to string
Parameters:
| std::string& | the string of node data |
| rapidjson::Value* | the target node |
Returns:
int 0: on success, -1: others
static std::string ToString(const rapidjson::Value* node)
node data to string
Parameters:
| rapidjson::Value* | the target node |
Returns:
std::string the string of node data. if any error occurred, the returned string is empty.
static bool parse(const std::string& filename, rapidjson::Document& doc)
parse a faile
Parameters:
| std::string& | the target file name |
| rapidjson::Document& | JSON file parser |
Returns:
bool return true on success, or else false on any error occurred
static bool validate( const std::string& filename, const std::string& config_schema, rapidjson::Document& doc )
judge the file whether valid or not.
Parameters:
| std::string& | the target file name |
| std::string& | the config schema |
| rapidjson::Document& | JSON file parser |
Returns:
bool if file is valid return true, or else return false