Clase que implementa una estructura de datos que almacena datos e formato Json.
Más...
|
namespace | Pds |
| Nombre de espacio para Pds (Procesamiento Digital de Senales)
|
|
|
class | Pds::Json |
| La clase tipo Pds::Json . Esta clase genera una estructura capaz de almacenar datos del formato Json. Para usar incluir #include <Pds/Json> . Más...
|
|
|
Herramientas genéricas
|
void | Pds::Json::MakeEmpty (void) |
| Libera los datos internos del objeto y lo convierte en uno nulo, es decir sin elementos Json. Más...
|
|
Pds::Json & | Pds::Json::operator= (const Pds::Json &J) |
| Copia en si mismo (A), un objeto J. Este operador es similar al método Copy(). No importa el tamaño de A, sus datos son liberados y un nuevo arreglo de datos es reservado. Más...
|
|
bool | Pds::Json::Copy (const Pds::Json &J) |
| Copia en si mismo (A), el contenido de un objeto J. Este método es similar a usar el operador = . No importa el tamaño de A, sus datos son liberados y un nuevo arreglo de datos es reservado. Más...
|
|
|
Indican o establecen el estado de un objeto Json.
|
bool | Pds::Json::IsEmpty (void) const |
| Verifica si el objeto Json es nulo, es decir sin elementos. Más...
|
|
|
Obtienen o establecen valores en un objeto Json.
|
bool | Pds::Json::Add (const std::string &Label, const Pds::JsonElement &E) |
| Agrega un elementos Json a la estructura Json. Más...
|
|
template<typename Datum > |
bool | Pds::Json::Add (const std::string &Label, const Datum &data) |
| Agrega un elemento de tipo Datum a la estructura Json. Más...
|
|
bool | Pds::Json::Add (const std::string &Label, const char *data) |
| Agrega un elemento de tipo const char * a la estructura Json. Más...
|
|
|
Obtienen o establecen valores en un objeto Json.
|
Pds::JsonElement | Pds::Json::Get (const std::string &Label) const |
| Retorna un elemento en una estructura de tipo Json. Más...
|
|
std::string | Pds::Json::GetType (const std::string &Label) const |
| Retorna el tipo del elemento en una estructura de tipo Json. Más...
|
|
bool | Pds::Json::LabelIsOfType (const std::string &Label, const std::string &Type) const |
| Dada una etiqueta, retorna true si el dato con etiqueta Label es de tipo Type o false si no. Más...
|
|
template<typename Datum > |
Datum & | Pds::Json::In (std::string Label) |
| Retorna una referencia a un dato de tipo "Datum" en el objeto de tipo Json. Más...
|
|
template<typename Datum > |
const Datum & | Pds::Json::At (std::string Label) const |
| Retorna una referencia no modificable a un dato de tipo "Datum" en el objeto de tipo Json. Más...
|
|
|
Obtienen o establecen valores en un objeto Json.
|
bool & | Pds::Json::Boolean (const std::string &Label) |
| Retorna una referencia a un dato de tipo "Boolean" en el objeto de tipo Json. Más...
|
|
long int & | Pds::Json::Integer (const std::string &Label) |
| Retorna una referencia a un dato de tipo "Integer" en el objeto de tipo Json. Más...
|
|
double & | Pds::Json::Real (const std::string &Label) |
| Retorna una referencia a un dato de tipo "Real" en el objeto de tipo Json. Más...
|
|
std::string & | Pds::Json::String (const std::string &Label) |
| Retorna una referencia a un dato de tipo "String" en el objeto de tipo Json. Más...
|
|
Pds::Json & | Pds::Json::JsonChild (const std::string &Label) |
| Retorna una referencia a un dato de tipo "Json" en el objeto de tipo Json. Más...
|
|
std::vector< bool > & | Pds::Json::ArrayB (const std::string &Label) |
| Retorna una referencia a un dato de tipo "ArrayB" en el objeto de tipo Json. Más...
|
|
std::vector< long int > & | Pds::Json::ArrayI (const std::string &Label) |
| Retorna una referencia a un dato de tipo "ArrayI" en el objeto de tipo Json. Más...
|
|
std::vector< double > & | Pds::Json::ArrayR (const std::string &Label) |
| Retorna una referencia a un dato de tipo "ArrayR" en el objeto de tipo Json. Más...
|
|
std::vector< std::string > & | Pds::Json::ArrayS (const std::string &Label) |
| Retorna una referencia a un dato de tipo "ArrayS" en el objeto de tipo Json. Más...
|
|
std::vector< Pds::Json > & | Pds::Json::ArrayJ (const std::string &Label) |
| Retorna una referencia a un dato de tipo "ArrayJ" en el objeto de tipo Json. Más...
|
|
Clase que implementa una estructura de datos que almacena datos e formato Json.
#include <Pds/Json>
Un ejemplo de texto en formato json seria:
{
"Matrix":
{
"Nlin":2,
"Ncol":3,
"Array":[0, 1, 2, 3, 4, 5 ]
}
}
◆ Json() [1/2]
Crea un objeto de tipo Pds::Json vacio.
Para crear un objeto vacio:
if(J.
IsEmpty()) std::cout<<
"Yes,always\n";
La clase tipo Pds::Json . Esta clase genera una estructura capaz de almacenar datos del formato Json....
bool IsEmpty(void) const
Verifica si el objeto Json es nulo, es decir sin elementos.
◆ Json() [2/2]
Crea un objeto de tipo Pds::Json copiando datos desde otro Json. Este es un Copy assignment constructor.
Para crear un objeto A con copia de datos de otro J:
if(A.IsEmpty()) std::cout<<"Yes,possible memory allocation problem\n";
else std::cout<<"No,all fine\n";
- Parámetros
-
◆ MakeEmpty()
void Pds::Json::MakeEmpty |
( |
void |
| ) |
|
Libera los datos internos del objeto y lo convierte en uno nulo, es decir sin elementos Json.
◆ operator=()
Copia en si mismo (A), un objeto J. Este operador es similar al método Copy(). No importa el tamaño de A, sus datos son liberados y un nuevo arreglo de datos es reservado.
Cuando acontece:
Cuando NO acontece:
- Parámetros
-
- Devuelve
- Retorna el operador de la izquierda (acumulador) con el resultado, o un objeto vacío (this->IsEmpty() igual a true) en caso de error.
- Ver también
- Copy
◆ Copy()
Copia en si mismo (A), el contenido de un objeto J. Este método es similar a usar el operador = . No importa el tamaño de A, sus datos son liberados y un nuevo arreglo de datos es reservado.
- Parámetros
-
- Devuelve
- Retorna true si todo fue bien o false si no. Si se retorna false el receptor no altera su contenido.
- Ver también
- Copy
◆ IsEmpty()
bool Pds::Json::IsEmpty |
( |
void |
| ) |
const |
Verifica si el objeto Json es nulo, es decir sin elementos.
- Devuelve
- Retorna true si es nula e false si no.
◆ Add() [1/3]
◆ Add() [2/3]
template<typename Datum >
bool Pds::Json::Add |
( |
const std::string & |
Label, |
|
|
const Datum & |
data |
|
) |
| |
Agrega un elemento de tipo Datum a la estructura Json.
Datum en *.Add()
Datum | Descripción |
bool | Booleano |
int | Entero |
unsigned int | Entero sin signo |
long int | Entero largo |
double | Numero real |
std::string | Cadena texto |
Pds::Json | Objeto de tipo Json |
std::vector<bool> | Vector de números booleanos |
std::vector<long int> | Vector de números enteros |
std::vector<double> | Vector de números reales |
std::vector<std::string> | Vector de cadenas de texto |
std::vector<Pds::Json> | Vector de objetos Json |
- Parámetros
-
[in] | Label | Etiqueta del elemento a agregar a la estructura Json. |
[in] | data | Elemento de tipo Datum a agregar a la estructura Json. |
- Devuelve
- Retorna true si todo fue bien o false si no.
◆ Add() [3/3]
bool Pds::Json::Add |
( |
const std::string & |
Label, |
|
|
const char * |
data |
|
) |
| |
Agrega un elemento de tipo const char * a la estructura Json.
- Parámetros
-
[in] | Label | Etiqueta del elemento a agregar a la estructura Json. |
[in] | data | Elemento de tipo const char * a agregar a la estructura Json. |
- Devuelve
- Retorna true si todo fue bien o false si no.
◆ Get()
Retorna un elemento en una estructura de tipo Json.
- Parámetros
-
[in] | Label | Etiqueta del elemento buscado. |
- Devuelve
- Retorna una referencia al elemento de tipo Json.
- Ejemplos
- example_json_get.cpp.
◆ GetType()
std::string Pds::Json::GetType |
( |
const std::string & |
Label | ) |
const |
Retorna el tipo del elemento en una estructura de tipo Json.
- Parámetros
-
[in] | Label | Etiqueta del elemento buscado. |
- Devuelve
- Retorna una referencia al elemento de tipo Json. Si Label no existe en a estructura Json se retorna una cadena vacia "".
- Ejemplos
- example_json_get.cpp.
◆ LabelIsOfType()
bool Pds::Json::LabelIsOfType |
( |
const std::string & |
Label, |
|
|
const std::string & |
Type |
|
) |
| const |
Dada una etiqueta, retorna true si el dato con etiqueta Label es de tipo Type o false si no.
Type en *.LabelIsOfType()
Type | C type | Descripción |
"Boolean" | bool | Booleano |
"Integer" | long int | Entero |
"Real" | double | Numero real |
"String" | std::string | Cadena texto |
"Json" | Pds::Json | Objeto de tipo Json |
"ArrayB" | std::vector<bool> | Vector de números booleanos |
"ArrayI" | std::vector<long int> | Vector de números enteros |
"ArrayR" | std::vector<double> | Vector de números reales |
"ArrayS" | std::vector<std::string> | Vector de cadenas de texto |
"ArrayJ" | std::vector<Pds::Json> | Vector de objetos Json |
- Parámetros
-
[in] | Label | Etiqueta del elemento buscado. |
[in] | Type | Tipo del elemento buscado. |
- Devuelve
- Dada una etiqueta, retorna true si el dato con etiqueta Label es de tipo Type o false si no. Retorna false si la etiqueta no existe
- Ejemplos
- example_json_get.cpp.
◆ In()
template<typename Datum >
Datum & Pds::Json::In |
( |
std::string |
Label | ) |
|
Retorna una referencia a un dato de tipo "Datum" en el objeto de tipo Json.
Type en *.In<Datum>()
Type | Datum | Descripción |
"Boolean" | bool | Booleano |
"Integer" | long int | Entero |
"Real" | double | Numero real |
"String" | std::string | Cadena texto |
"Json" | Pds::Json | Objeto de tipo Json |
"ArrayB" | std::vector<bool> | Vector de números booleanos |
"ArrayI" | std::vector<long int> | Vector de números enteros |
"ArrayR" | std::vector<double> | Vector de números reales |
"ArrayS" | std::vector<std::string> | Vector de cadenas de texto |
"ArrayJ" | std::vector<Pds::Json> | Vector de objetos Json |
Codigo de exemplo
Pds::Json J;
long int a=10;
J.Add("dato",a);
long int b=J.In<long int>("dato");
- Atención
- Si el elemento está vacio, no es "Datum" o no existe la etiqueta acontece std::abort();
- Parámetros
-
[in] | Label | Etiqueta a analizar. |
- Devuelve
- Retorna una referencia a un dato de tipo "Datum" en el objeto de tipo Json.
- Ejemplos
- example_json_get2.cpp y example_json_get3.cpp.
◆ At()
template<typename Datum >
const Datum & Pds::Json::At |
( |
std::string |
Label | ) |
const |
Retorna una referencia no modificable a un dato de tipo "Datum" en el objeto de tipo Json.
Type en *.At<Datum>()
Type | Datum | Descripción |
"Boolean" | bool | Booleano |
"Integer" | long int | Entero |
"Real" | double | Numero real |
"String" | std::string | Cadena texto |
"Json" | Pds::Json | Objeto de tipo Json |
"ArrayB" | std::vector<bool> | Vector de números booleanos |
"ArrayI" | std::vector<long int> | Vector de números enteros |
"ArrayR" | std::vector<double> | Vector de números reales |
"ArrayS" | std::vector<std::string> | Vector de cadenas de texto |
"ArrayJ" | std::vector<Pds::Json> | Vector de objetos Json |
Codigo de exemplo
Pds::Json J;
long int a=10;
J.Add("dato",a);
long int b=J.At<long int>("dato");
- Atención
- Si el elemento está vacio, no es "Datum" o no existe la etiqueta acontece std::abort();
- Parámetros
-
[in] | Label | Etiqueta a analizar. |
- Devuelve
- Retorna una referencia no modificable a un dato de tipo "Datum" en el objeto de tipo Json.
◆ Boolean()
bool & Pds::Json::Boolean |
( |
const std::string & |
Label | ) |
|
Retorna una referencia a un dato de tipo "Boolean" en el objeto de tipo Json.
- Atención
- Si el elemento está vacio, no es "Boolean" o no existe la etiqueta acontece std::abort();
- Parámetros
-
[in] | Label | Etiqueta a analizar. |
- Devuelve
- Retorna una referencia a un dato de tipo "Boolean" en el objeto de tipo Json.
◆ Integer()
long int & Pds::Json::Integer |
( |
const std::string & |
Label | ) |
|
Retorna una referencia a un dato de tipo "Integer" en el objeto de tipo Json.
- Atención
- Si el elemento está vacio, no es "Integer" o no existe la etiqueta acontece std::abort();
- Parámetros
-
[in] | Label | Etiqueta a analizar. |
- Devuelve
- Retorna una referencia a un dato de tipo "Integer" en el objeto de tipo Json.
- Ejemplos
- example_json_get.cpp.
◆ Real()
double & Pds::Json::Real |
( |
const std::string & |
Label | ) |
|
Retorna una referencia a un dato de tipo "Real" en el objeto de tipo Json.
- Atención
- Si el elemento está vacio, no es "Real" o no existe la etiqueta acontece std::abort();
- Parámetros
-
[in] | Label | Etiqueta a analizar. |
- Devuelve
- Retorna una referencia a un dato de tipo "Real" en el objeto de tipo Json.
- Ejemplos
- example_json_get.cpp.
◆ String()
std::string & Pds::Json::String |
( |
const std::string & |
Label | ) |
|
Retorna una referencia a un dato de tipo "String" en el objeto de tipo Json.
- Atención
- Si el elemento está vacio, no es "String" o no existe la etiqueta acontece std::abort();
- Parámetros
-
[in] | Label | Etiqueta a analizar. |
- Devuelve
- Retorna una referencia a un dato de tipo "String" en el objeto de tipo Json.
- Ejemplos
- example_json_get.cpp.
◆ JsonChild()
Pds::Json & Pds::Json::JsonChild |
( |
const std::string & |
Label | ) |
|
Retorna una referencia a un dato de tipo "Json" en el objeto de tipo Json.
- Atención
- Si el elemento está vacio, no es "Json" o no existe la etiqueta acontece std::abort();
- Parámetros
-
[in] | Label | Etiqueta a analizar. |
- Devuelve
- Retorna una referencia a un dato de tipo "Json" en el objeto de tipo Json.
- Ejemplos
- example_json_get.cpp.
◆ ArrayB()
std::vector< bool > & Pds::Json::ArrayB |
( |
const std::string & |
Label | ) |
|
Retorna una referencia a un dato de tipo "ArrayB" en el objeto de tipo Json.
- Atención
- Si el elemento está vacio, no es "ArrayB" o no existe la etiqueta acontece std::abort();
- Parámetros
-
[in] | Label | Etiqueta a analizar. |
- Devuelve
- Retorna una referencia a un dato de tipo "ArrayB" en el objeto de tipo Json.
◆ ArrayI()
std::vector< long int > & Pds::Json::ArrayI |
( |
const std::string & |
Label | ) |
|
Retorna una referencia a un dato de tipo "ArrayI" en el objeto de tipo Json.
- Atención
- Si el elemento está vacio, no es "ArrayI" o no existe la etiqueta acontece std::abort();
- Parámetros
-
[in] | Label | Etiqueta a analizar. |
- Devuelve
- Retorna una referencia a un dato de tipo "ArrayI" en el objeto de tipo Json.
- Ejemplos
- example_json_get.cpp.
◆ ArrayR()
std::vector< double > & Pds::Json::ArrayR |
( |
const std::string & |
Label | ) |
|
Retorna una referencia a un dato de tipo "ArrayR" en el objeto de tipo Json.
- Atención
- Si el elemento está vacio, no es "ArrayR" o no existe la etiqueta acontece std::abort();
- Parámetros
-
[in] | Label | Etiqueta a analizar. |
- Devuelve
- Retorna una referencia a un dato de tipo "ArrayR" en el objeto de tipo Json.
- Ejemplos
- example_json_get.cpp.
◆ ArrayS()
std::vector< std::string > & Pds::Json::ArrayS |
( |
const std::string & |
Label | ) |
|
Retorna una referencia a un dato de tipo "ArrayS" en el objeto de tipo Json.
- Atención
- Si el elemento está vacio, no es "ArrayS" o no existe la etiqueta acontece std::abort();
- Parámetros
-
[in] | Label | Etiqueta a analizar. |
- Devuelve
- Retorna una referencia a un dato de tipo "ArrayS" en el objeto de tipo Json.
- Ejemplos
- example_json_get.cpp.
◆ ArrayJ()
std::vector< Pds::Json > & Pds::Json::ArrayJ |
( |
const std::string & |
Label | ) |
|
Retorna una referencia a un dato de tipo "ArrayJ" en el objeto de tipo Json.
- Atención
- Si el elemento está vacio, no es "ArrayJ" o no existe la etiqueta acontece std::abort();
- Parámetros
-
[in] | Label | Etiqueta a analizar. |
- Devuelve
- Retorna una referencia a un dato de tipo "ArrayJ" en el objeto de tipo Json.
- Ejemplos
- example_json_get.cpp.
◆ Print() [1/3]
void Pds::Json::Print |
( |
void |
| ) |
const |
◆ Print() [2/3]
void Pds::Json::Print |
( |
bool |
last, |
|
|
unsigned int |
Ntabs |
|
) |
| const |
Retorna un std::string con texto en formato Json.
- Parámetros
-
[in] | last | Si last==false coloca una "," al final. |
[in] | Ntabs | Numero de tabs antes de cada linea. |
◆ Print() [3/3]
void Pds::Json::Print |
( |
const std::string & |
str | ) |
const |
Retorna un std::string con texto en formato Json.
- Parámetros
-
[in] | str | cadena a colocar antes de Print. |
◆ ToString()
std::string Pds::Json::ToString |
( |
unsigned int |
Ntabs = 0 | ) |
const |
Retorna un std::string con texto en formato Json.
- Parámetros
-
[in] | Ntabs | Numero de tabs antes de cada linea. |
- Devuelve
- Retorna un std::string con texto en formato Json.
- Ejemplos
- example_vector_export_json.cpp.
◆ Save()
bool Pds::Json::Save |
( |
const std::string & |
filepath | ) |
const |
◆ SaveInStream()
bool Pds::Json::SaveInStream |
( |
std::ofstream & |
myfile | ) |
const |
Salva el objeto Json en un stream.
- Parámetros
-
[in] | myfile | Donde se enviarán los datos. |
- Devuelve
- Retorna true si todo fue bien o false si no.
- Ejemplos
- example_json_create.cpp.
◆ ~Json()
◆ Load()
bool Pds::Json::Load |
( |
const std::string & |
filepath | ) |
|
◆ LoadFromString()
bool Pds::Json::LoadFromString |
( |
const std::string & |
str | ) |
|