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. 
![\[ A \leftarrow J \]](form_317.png) 
 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. 
![\[ A \leftarrow J \]](form_317.png) 
 - 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 | ) |  |