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