Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Go Back   Foros Club Delphi > Principal > OOP
Register FAQ Members List Calendar Guía de estilo Search Today's Posts Mark Forums Read

Coloboración Paypal con ClubDelphi

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 19/06/2018
GerTorresM's Avatar
GerTorresM GerTorresM is offline
Miembro
 
Join Date: Nov 2005
Location: Tunja - Boyacá
Posts: 210
Poder: 21
GerTorresM Va por buen camino
Cool Crear TObject desde un JSON

Hola a tod@s

La situación propuesta es para que sea desarrollada en delphi 7 con postgres 9.4(inlcuye el manejo de datos tipo JSON) o superior

La duda que me asalta e día de hoy es las siguiente:

Quiero generar a partir de los datos manejados en un JSON un objeto en delphi, como ejemplo supogamos que guardo en un json todas los valores que deseo asignar a un objeto que creo en forma dinámica, asignado al objeto creado los valores guardados en el json.

para ejemplo profundizar el ejemplo ponga la siguiente situación:

Tenemos por una parte la cabecera de un reporte, dicha caberera puede llegar a variar con el paso del tiempo, entonces se almacena en la base de datos en formato JSON las especificaciones de la cabecera; las cuales se puden modificar en la base de datos afectando la presentación del reporte sin que implique efctuar cambios en el código del aplicativo.

Agradezco de antemano el tiempo y cualquier aporte




GerTorresM
Reply With Quote
  #2  
Old 19/06/2018
Neftali [Germán.Estévez]'s Avatar
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is online now
[becario]
 
Join Date: Jul 2004
Location: Barcelona - España
Posts: 19,474
Poder: 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
Quote:
Originally Posted by GerTorresM View Post
La duda que me asalta e día de hoy es las siguiente:

Quiero generar a partir de los datos manejados en un JSON un objeto en delphi, como ejemplo supogamos que guardo en un json todas los valores que deseo asignar a un objeto que creo en forma dinámica, asignado al objeto creado los valores guardados en el json.

Pues alguien ya pensó en esa posibilidad y además creó una herramienta para generar esas clases.
Por ejemplo, si tienes un JSON como este:

Code:
{
   "marcadores":[
      {
         "latitude":40.416875,
         "longitude":-3.703308,
         "city":"Madrid",
         "description":"Puerta del Sol"
      },
      {
         "latitude":40.417438,
         "longitude":-3.693363,
         "city":"Madrid",
         "description":"Paseo del Prado"
      },
      {
         "latitude":40.407015,
         "longitude":-3.691163,
         "city":"Madrid",
         "description":"Estación de Atocha"
      }
   ]
}

Puedes ir a la web https://jsontodelphi.com/ pegar el JSON y obtener la clase para trabajar con él.
Se te genera un código/unit como este:


Código Delphi [-]
unit RootUnit;

{*******************************************************************************
    Generated By   : JsonToDelphiClass - 0.65 
    Project link   : https://github.com/PKGeorgiev/Delphi-JsonToDelphiClass
    Generated On   : 2018-06-19 07:09:45

    Created By     : Petar Georgiev - (http://pgeorgiev.com) 
    Adapted Web By : Marlon Nardi - (http://jsontodelphi.com)
*******************************************************************************}

interface

uses Generics.Collections, Rest.Json;

type

TMarcadoresClass = class
private
  FCity: String;
  FDescription: String;
  FLatitude: Extended;
  FLongitude: Extended;
public
  property city: String read FCity write FCity;
  property description: String read FDescription write FDescription;
  property latitude: Extended read FLatitude write FLatitude;
  property longitude: Extended read FLongitude write FLongitude;
  function ToJsonString: string;
  class function FromJsonString(AJsonString: string): TMarcadoresClass;
end;

TRootClass = class
private
  FMarcadores: TArray;
public
  property marcadores: TArray read FMarcadores write FMarcadores;
  destructor Destroy; override;
  function ToJsonString: string;
  class function FromJsonString(AJsonString: string): TRootClass;
end;

implementation

{TMarcadoresClass}


function TMarcadoresClass.ToJsonString: string;
begin
  result := TJson.ObjectToJsonString(self);
end;

class function TMarcadoresClass.FromJsonString(AJsonString: string): TMarcadoresClass;
begin
  result := TJson.JsonToObject(AJsonString)
end;

{TRootClass}

destructor TRootClass.Destroy;
var
  LmarcadoresItem: TMarcadoresClass;
begin

 for LmarcadoresItem in FMarcadores do
   LmarcadoresItem.Free;

  inherited;
end;

function TRootClass.ToJsonString: string;
begin
  result := TJson.ObjectToJsonString(self);
end;

class function TRootClass.FromJsonString(AJsonString: string): TRootClass;
begin
  result := TJson.JsonToObject(AJsonString)
end;

end.


Utilizando esta unit, basta con una línea (método de clase) para traducir el jSON en un objeto Delphi.


Código Delphi [-]
  class function FromJsonString(AJsonString: string): TMarcadoresClass;
__________________
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.
Reply With Quote
  #3  
Old 14/07/2018
rastafarey's Avatar
rastafarey rastafarey is offline
Miembro
 
Join Date: Nov 2003
Posts: 927
Poder: 23
rastafarey Va por buen camino
Resp

https://github.com/rilyu/json4delphi alli tienes eso.
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa.
Reply With Quote
Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Uso de TObject en un TStringList Angel.Matilla C++ Builder 4 07/03/2018 18:16
Crear estructura en Json lbidi Varios 1 01/06/2015 18:00
Como crear un objeto json lbidi Varios 3 14/05/2015 15:22
Como consumir Rest Service que retorna cadena en formato JSON desde delphi 7 JuanPa1 Internet 0 20/12/2013 18:07
Como deserializar array JSON desde C++ Builder? DSK25 C++ Builder 1 17/02/2013 22:51


All times are GMT +2. The time now is 08:51.


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