Ver Mensaje Individual
  #3  
Antiguo 06-10-2017
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.233
Reputación: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Si vas a trabajar mucho con estar estructura (y también para mantener un código limpio), vale la pena utilizar esta herramienta de la que ya he hablado en el blog.

JsonToDelphiClass

Permite como su nombre indica, generar una unit con las clases necesarias para trabajar con el JSON que le proporciones.
Si la generas para este JSON obtendrás el fichero que te adjunto.

La gracias es que con una línea como esta puedes cargar todo el JSON es un objeto.

Código Delphi [-]
var  
  ULista:TListaUsuarios;
begin
  // si en el memo tenemos el JSON...
  ULista := TListaUsuarios.FromJsonString(Memo1.Lines.Text);
  
  // ...

A partir de este punto, en ULista tienes todo el JSON.
Para recorrerlo y acceder a los elementos puedes utilizar algo así (o para guardarlos en un TSTringGrid):

Código Delphi [-]
procedure TForm2.FormShow(Sender: TObject);
var
  nUsuarios:integer;
  i:integer;
  us:TUsuariosClass;
begin

  ULista := TListaUsuarios.FromJsonString(Memo1.Lines.Text);
  nUsuarios := Length(ULista.Usuarios);

  // Lineas
  SG.RowCount := nUsuarios + 1;
  // Titulos
  SG.Cells[0, 0] := 'Id';
  SG.Cells[1, 0] := 'Nombre';
  SG.Cells[2, 0] := 'Apellidos';
  //.. resto de columnas

  // Cargar usuarios en un StringGrid
  for i := 0 to (nUsuarios - 1) do begin
    us := ULista.Usuarios[i];
    SG.Cells[0, i+1] := us.Usuario.id;
    SG.Cells[1, i+1] := us.Usuario.nombre;
    SG.Cells[2, i+1] := us.Usuario.apellidos;
    // resto de columnas
  end;
end;
Archivos Adjuntos
Tipo de Archivo: zip UTListaUsuariosClass.zip (904 Bytes, 11 visitas)
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.

Última edición por Neftali [Germán.Estévez] fecha: 07-10-2017 a las 13:57:30. Razón: Añadr adjunto
Responder Con Cita