Notarás que en resumen, un objeto del tipo JSON puede contener los siguientes:
Y esto es recursivo, es decir cada nuevo valor del objeto puede a su ver contener cualquiera de los valores mostrados en la imagen anterior.
Haremos un ejemplo en C++, que como siempre es multiplataforma :D
Les haré un ejemplo muy sencillo en C++.
Digamos que queremos armar lo siguiente:
{
"Book-1": {
"id":2587,
"titulo":"Dalila la bella",
"subtitulo":"Poesia sobre Dalila.",
"autor":"Sr. Juan Perez",
"isbn":"777345934500023",
"categoria":[arte,poesia]
}
}
Para empezar incluimos lo siguiente en tu archivo "xyz.cpp" o en "xyz.h" dependiendo del uso y alcance que quieras darle a la declaración de tus variables. Por ejemplo si vas a usar objetos JSON como parámetros de funciones, pues tendrás que incluir la siguiente línea en el archivo de cabeceras "xyz.h":
#include <System.JSON.hpp>
Paso siguiente. Nota detenidamente que todas las variables son punteros, quiere decir que cada variable apunta directamente a una dirección de memoria y cualquier acción que realices sobre ellas impactará directamente en su contenido, en memoria.
El siguiente código lo podrías poner en el evento clic de algún botón.
auto *mainObj = new TJSONObject;
auto *Obra1 = new TJSONObject;
mainObj->AddPair("Book-1", Obra1);
Obra1->AddPair("id", new TJSONNumber(2587));
Obra1->AddPair("titulo", "Dalila la bella");
Obra1->AddPair("subtitulo", "Poesia sobre Dalila.");
Obra1->AddPair("autor", "Sr. Juan Perez");
Obra1->AddPair("isbn", "777345934500023");
auto *CatArray = new TJSONArray();
Obra1->AddPair("categoria", CatArray);
CatArray->Add(String("arte"));
CatArray->Add(String("poesia"));
ShowMessage(mainObj->ToString());
Antes de compilar, es muy importante que desactives el compilador clásico de Boland para que entre en acción C++11 o CLANG. En CLANG no es necesario liberar los objectos porque se libran solos 😄. En caso uses el compilador clásico, no podrás usar la clave "auto", cámbialas al tipo de objeto a crear, y al final de usar los objetos elimínalos, Ej. "delete mainObj;". Te recomiendo usar la cláusula try... __finally para controlar adecuadamente esta acción.
Para esto ve al menú "Project->Options..." o simplemte presiona la combinación de teclas Ctrl+Shift+F11. En la izquierda ve a "C++ Compiler". Luego cambia de true a false la opción del compilador clásico como se muestra en la siguiente imagen.
Luego de ejecutar nuestro ejemplo obtendremos el siguiente resultado:
Muy bueno eh!!
Seguramente notarás que como "Book-1" podrías tener "n" números de books.
Un saludos y bendiciones!
No hay comentarios.:
Publicar un comentario
Por favor ser gentil.