Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-06-2015
Avatar de lbidi
lbidi lbidi is offline
Miembro
 
Registrado: oct 2003
Ubicación: Montevideo- URUGUAY
Posts: 417
Poder: 22
lbidi Va por buen camino
Crear estructura en Json

Estimados foristas.
Tengo el siguiente codigo en XE5, para crear una estructura JSON con un formato especifico.

Código Delphi [-]
var
  MainObject, Obj_Estudios, Obj_Examenes : TJSONObject;
  Array_Estudios , Array_Examenes : TJSONArray;
begin
    try
        MainObject := TJSONObject.Create;
        try

            Array_Estudios := TJSONArray.Create;
            Array_Examenes := TJSONArray.Create;

            Obj_Estudios := TJSONObject.Create;
            Obj_Estudios.AddPair(TJSONPair.Create('Nombre', 'hemograma' ) );
            Obj_Estudios.AddPair(TJSONPair.Create('Fecha', '01/01/15') ) ;
            Array_Estudios.Add(Obj_Estudios);

            Array_Estudios.Add( Array_Examenes ) ; <<-- aca me crea el array vacio, obviamente.

            Obj_Examenes := TJSONObject.Create;
            Obj_Examenes.AddPair(TJSONPair.Create('Nombre', 'hemoglobina' ) );
            Obj_Examenes.AddPair(TJSONPair.Create('Valor', 'negativo') );
            Array_Examenes.Add(Obj_Examenes);

            Obj_Examenes := TJSONObject.Create;
            Obj_Examenes.AddPair(TJSONPair.Create('Nombre', 'hemograma' ) );
            Obj_Examenes.AddPair(TJSONPair.Create('Valor', '1.16') );
            Array_Examenes.Add(Obj_Examenes);

            Array_Estudios.Add(Array_Examenes);

            MainObject.AddPair(TJSONPair.Create('Estudios', Array_Estudios ) ) ;

            Memo1.Text := MainObject.ToString;

        finally
            MainObject.Free;  //free all the child objects.
        end;
    except
        on E: Exception do
            Writeln(E.ClassName, ': ', E.Message);
    end;

Esta muy cerca a lo necesitado, pero me falta agregar un objeto "cabezal" para los examenes, el cual muestro en el siguiente formato.

{
"Estudios": [
{
"nombre": "hemograma",
"Fecha": "12/12/12",
"Examenes": [ <<<---- esto es lo que me falta
{
"Nombre": "hemoglobina",
"resultado": "negativo"
}
]
},
{
"nombre": "orina",
"Fecha": "12/12/12",
"Examenes": [
{
"Nombre": "hemograma",
"resultado": "negativo"
}
]
}
]
}

Cada estudio tiene nombre, fecha, y un array de examenes, y por cada examen, tiene nombre y resultado. No me estoy dando cuenta como agregar el array de examenes a cada objeto estudio.

Gracias por sus sugerencias.
Responder Con Cita
  #2  
Antiguo 01-06-2015
Avatar de lbidi
lbidi lbidi is offline
Miembro
 
Registrado: oct 2003
Ubicación: Montevideo- URUGUAY
Posts: 417
Poder: 22
lbidi Va por buen camino
Logre hacerlo con el siguiente codigo. Tiene 2 for para agregar datos de muestra en lugar de obtener los datos de un query, basicamente es lo mismo.

Código Delphi [-]
    try
        MainObject := TJSONObject.Create;
        try

            Array_Estudios := TJSONArray.Create;
            MainObject.AddPair(TJSONPair.Create('Estudios', Array_Estudios ) ) ;

            for i := 1 to 2 do
            begin

                Obj_Estudios := TJSONObject.Create;
                Obj_Estudios.AddPair(TJSONPair.Create('Nombre', 'hemograma' ) );
                Obj_Estudios.AddPair(TJSONPair.Create('Fecha', '01/01/15') ) ;
                Array_Estudios.Add(Obj_Estudios);

                Array_Examenes := TJSONArray.Create;
                Obj_Estudios.AddPair(TJSONPair.Create('Examenes', Array_Examenes ) ) ;
                for z := 1 to 3 do
                begin
                    Obj_Examenes := TJSONObject.Create;
                    Obj_Examenes.AddPair(TJSONPair.Create('Nombre', 'hemoglobina' ) );
                    Obj_Examenes.AddPair(TJSONPair.Create('Valor', 'negativo') );
                    Array_Examenes.Add(Obj_Examenes);
                end;

            end;
            Memo1.Text := MainObject.ToString;
        finally
            MainObject.Free;
        end;
    except
        on E: Exception do
            Writeln(E.ClassName, ': ', E.Message);
    end;
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problemón con JSON MaxiDucoli OOP 7 25-09-2015 18:54:39
Como crear un objeto json lbidi Varios 3 14-05-2015 16:22:52
Json de PHP a Imagen Kubelo Gráficos 5 20-06-2014 10:05:59
Fecha JSON. BuenaOnda Varios 4 27-11-2011 19:46:27
Crear una BD en blanco a partir de la estructura de otra?? burasu Conexión con bases de datos 1 11-03-2005 18:33:24


La franja horaria es GMT +2. Ahora son las 01:47:23.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi