Home | Develop | Download | Contact
Namespaces | Estructuras de datos
Clase Pds::Json

Clase que implementa una estructura de datos que almacena datos e formato Json. Más...

Namespaces

namespace  Pds
 Nombre de espacio para Pds (Procesamiento Digital de Senales)
 

Estructuras de datos

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...
 

Constructores

Crean una objeto Pds::Json

 Pds::Json::Json ()
 Crea un objeto de tipo Pds::Json vacio. Más...
 
 Pds::Json::Json (const Pds::Json &J)
 Crea un objeto de tipo Pds::Json copiando datos desde otro Json. Este es un Copy assignment constructor. Más...
 
 Pds::Json::~Json ()
 

Métodos para reordenar memoria con Pds::Json.

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::JsonPds::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...
 

Métodos de estado

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...
 

Métodos para Add element

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...
 

Métodos get set Pds::JsonElement

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...
 

Métodos get set extra

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::JsonPds::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...
 

Métodos print

Imprimir datos

void Pds::Json::Print (void) const
 Retorna un std::string con texto en formato Json. Más...
 
void Pds::Json::Print (bool last, unsigned int Ntabs) const
 Retorna un std::string con texto en formato Json. Más...
 
void Pds::Json::Print (const std::string &str) const
 Retorna un std::string con texto en formato Json. Más...
 
std::string Pds::Json::ToString (unsigned int Ntabs=0) const
 Retorna un std::string con texto en formato Json. Más...
 

Métodos para salvar datos

Salvar datos

bool Pds::Json::Save (const std::string &filepath) const
 Salva el objeto Json en un archivo. Más...
 
bool Pds::Json::SaveInStream (std::ofstream &myfile) const
 Salva el objeto Json en un stream. Más...
 
bool Pds::Json::Load (const std::string &filepath)
 
bool Pds::Json::LoadFromString (const std::string &str)
 

Descripción detallada

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 ]
}
}

Documentación de las funciones

◆ Json() [1/2]

Pds::Json::Json ( )

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....
Definition: Json.hpp:63
bool IsEmpty(void) const
Verifica si el objeto Json es nulo, es decir sin elementos.

◆ Json() [2/2]

Pds::Json::Json ( const Pds::Json J)

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:

Pds::Json A(J);
if(A.IsEmpty()) std::cout<<"Yes,possible memory allocation problem\n";
else std::cout<<"No,all fine\n";
Parámetros
[in]JJson a copiar.

◆ MakeEmpty()

void Pds::Json::MakeEmpty ( void  )

Libera los datos internos del objeto y lo convierte en uno nulo, es decir sin elementos Json.

◆ operator=()

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.

\[ A \leftarrow J \]

Cuando acontece:

// code
A=J;

Cuando NO acontece:

Parámetros
[in]JEl objeto a copiar
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()

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.

\[ A \leftarrow J \]

Parámetros
[in]JEl objeto a copiar
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]

bool Pds::Json::Add ( const std::string &  Label,
const Pds::JsonElement E 
)

Agrega un elementos Json a la estructura Json.

Parámetros
[in]LabelEtiqueta del elemento a agregar a la estructura Json.
[in]EElemento de tipo Json
Devuelve
Retorna true si todo fue bien o false si no.
Ejemplos
example_json_create.cpp, example_json_get.cpp, example_json_get2.cpp, example_json_get3.cpp, example_json_load.cpp y example_jsonelement_create.cpp.

◆ 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
boolBooleano
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]LabelEtiqueta del elemento a agregar a la estructura Json.
[in]dataElemento 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]LabelEtiqueta del elemento a agregar a la estructura Json.
[in]dataElemento de tipo const char * a agregar a la estructura Json.
Devuelve
Retorna true si todo fue bien o false si no.

◆ Get()

Pds::JsonElement Pds::Json::Get ( const std::string &  Label) const

Retorna un elemento en una estructura de tipo Json.

Parámetros
[in]LabelEtiqueta 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]LabelEtiqueta 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]LabelEtiqueta del elemento buscado.
[in]TypeTipo 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]LabelEtiqueta 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]LabelEtiqueta 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]LabelEtiqueta 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]LabelEtiqueta 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]LabelEtiqueta 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]LabelEtiqueta 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]LabelEtiqueta 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]LabelEtiqueta 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]LabelEtiqueta 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]LabelEtiqueta 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]LabelEtiqueta 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]LabelEtiqueta 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]lastSi last==false coloca una "," al final.
[in]NtabsNumero 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]strcadena 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]NtabsNumero 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

Salva el objeto Json en un archivo.

Parámetros
[in]filepathDirección completa del archivo a crear o sobrescribir.
Devuelve
Retorna true si todo fue bien o false si no.
Ejemplos
example_circle_export_json.cpp, example_ellipse_export_json.cpp, example_json_create.cpp, example_json_load.cpp, example_line2d_export_json.cpp, example_triangle_export_json.cpp y example_vector_json.cpp.

◆ SaveInStream()

bool Pds::Json::SaveInStream ( std::ofstream &  myfile) const

Salva el objeto Json en un stream.

Parámetros
[in]myfileDonde se enviarán los datos.
Devuelve
Retorna true si todo fue bien o false si no.
Ejemplos
example_json_create.cpp.

◆ ~Json()

Pds::Json::~Json ( )

◆ Load()

bool Pds::Json::Load ( const std::string &  filepath)

◆ LoadFromString()

bool Pds::Json::LoadFromString ( const std::string &  str)

Enlaces de interés

HomePage Bazaar Download Bug report Ayuda Developer Feed