Ver Mensaje Individual
  #1  
Antiguo 01-06-2015
Avatar de lbidi
lbidi lbidi is offline
Miembro
 
Registrado: oct 2003
Ubicación: Montevideo- URUGUAY
Posts: 417
Reputación: 21
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