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;