Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-04-2020
elrayo76 elrayo76 is offline
Miembro
 
Registrado: ene 2004
Ubicación: En la tierra, por eso mis archivos en la tierra y no en la nuebe...
Posts: 290
Poder: 21
elrayo76 Va por buen camino
Sobre JSON. ¿Qué usar?

Buenas,


Les quería consultar a los que tienen experiencia con JSON que clases usan en sus aplicaciones para el tratamiento de estos archivos.


Se que si usan Delphi 7 tienen que usar alguna librería de terceros, pero en las últimas versiones Delphi XE8 (que es la que utilizo) y posteriores ya existen units que manejan esto en el lenguaje.


Lo que no se es que tan recomendable es utilizar lo que ya tiene el lenguaje en lugar de unas de terceros. He leído en otros post que son del año pasado si mal no recuerdo que recomiendan utilizar SuperObject como librerías, pero el tema es que las mismas las he visto en GitHub y no se actualizan hace varios años. Si fuera el caso que voy por estas no tendría problemas en tomarlas y ver de actualizarlas o hacer una bifurcación.


Espero sus comentarios y muchas gracias.


Saludos,
El Rayo
__________________
Si tienes una función o procedimiento con diez parámetros, probablemente hayas olvidado uno
Responder Con Cita
  #2  
Antiguo 24-04-2020
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.462
Poder: 21
newtron Va camino a la fama
Buenas.


Yo he tenido recientemente que buscar algo para "descifrar" mensajes JSON y di con esto. No sé exactamente si es lo que buscas pero es una unidad que maneja este tipo de mensajes sin demasiada dificultad.


Saludos
__________________
Be water my friend.
Responder Con Cita
  #3  
Antiguo 24-04-2020
elrayo76 elrayo76 is offline
Miembro
 
Registrado: ene 2004
Ubicación: En la tierra, por eso mis archivos en la tierra y no en la nuebe...
Posts: 290
Poder: 21
elrayo76 Va por buen camino
Buenas Newtron,


Gracias, creo que ese que comentas lo había visto hace muchisimo solo de pasada pero nunca me lo guarde por si lo necesitaba. Podría servirme.


Lo que necesito es poder serializar y deserializar archivos JSON, nada mas que eso. Lo único que quiero es que no tenga problemas con estructuras complejas.


Por si a alguién le interesa encontré este sitio que se le carga todo el contenido del JSON y genera toda las unit con las clases necesarias para Delphi. Acá dejo la dirección: https://jsontodelphi.com/


Mi pregunta es la siguiente, estás clases tanto la que me pasaste como la que yo comente no se actualizan hace mucho una 2009 y otra 2013. Más allá de actualización por compatibilidad con RADs nuevos que pueda necesitar o por performance, ¿hay algo que diga que se tienen que actulizar por que se actualizó el estandar JSON?.



Saludos,
El Rayo
__________________
Si tienes una función o procedimiento con diez parámetros, probablemente hayas olvidado uno
Responder Con Cita
  #4  
Antiguo 24-04-2020
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
El indicado por newtron funciona muy bien, lkjson.

El problema de esas clases que se crean desde sitios online como el que has indicado, es que no son compatibles con delphi 7, que es el que usas, sin con delphis modernos.
Responder Con Cita
  #5  
Antiguo 25-04-2020
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.462
Poder: 21
newtron Va camino a la fama
Cita:
Empezado por elrayo76 Ver Mensaje
Buenas Newtron,


Gracias, creo que ese que comentas lo había visto hace muchisimo solo de pasada pero nunca me lo guarde por si lo necesitaba. Podría servirme.


Lo que necesito es poder serializar y deserializar archivos JSON, nada mas que eso. Lo único que quiero es que no tenga problemas con estructuras complejas.


Por si a alguién le interesa encontré este sitio que se le carga todo el contenido del JSON y genera toda las unit con las clases necesarias para Delphi. Acá dejo la dirección: https://jsontodelphi.com/


Mi pregunta es la siguiente, estás clases tanto la que me pasaste como la que yo comente no se actualizan hace mucho una 2009 y otra 2013. Más allá de actualización por compatibilidad con RADs nuevos que pueda necesitar o por performance, ¿hay algo que diga que se tienen que actulizar por que se actualizó el estandar JSON?.



Saludos,
El Rayo

Yo lo he implementado hace escasamente un mes en un Delphi2007 sin problemas pero te diría que debe de funcionar bien en cualquier delphi.


Saludos
__________________
Be water my friend.
Responder Con Cita
  #6  
Antiguo 25-04-2020
xalo xalo is offline
Miembro
 
Registrado: ene 2011
Posts: 18
Poder: 0
xalo Va por buen camino
Yo te recomendaría mORMot. Esta es la parte donde explica el tema de tratamiento de json
Tiene un performance mejor incluso que el que viene integrado en Delphi. Sinó quieres usar o instalar todo el framework usa solo la unidad Syncommons.pas. Compila desde delphi 7 a 10.3 e incluso FPC.
La documentación es excelente.
Fíjate que fácil es crear un json y parsearlo con una de las diversas formas que tiene de hacerlo:
Código:
var V1: variant; 
begin
  V1 := _Obj(['name','John','year',1972]);
  
  assert(VariantSaveJson(v1)='{"name":"John","year":1972}');
  assert(v1.name='John');
....
Responder Con Cita
  #7  
Antiguo 27-04-2020
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.275
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
Yo mismo he usado lkJson bastante en versiones antiguas de delphi que no tenían soporte para JSON y funcionan muy boien.
Y también he visto algo de SuperObject, aunque no tanto y yambién va muy bien.

Pero creo que la mejor opción la has dicho tú mismo:


Cita:
Empezado por elrayo76 Ver Mensaje
Lo que no se es que tan recomendable es utilizar lo que ya tiene el lenguaje en lugar de unas de terceros.

Si tu versión de delphi lo soporta, yo personalmente no usuaría algo de terceros.
Salvo que hubiera alguna razón de peso (si la hay comentala).
__________________
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.
Responder Con Cita
  #8  
Antiguo 27-04-2020
WHILENOTEOF WHILENOTEOF is offline
Miembro
 
Registrado: mar 2008
Posts: 229
Poder: 17
WHILENOTEOF Va camino a la fama
Yo utilizo estos https://github.com/ahausladen/JsonDataObjects , van muy bien, rápido y una elegante forma de acceder a los valores. Sobre la implementación que viene con Delphi, creo que en las últimas versiones ha mejorado el rendimiento, pero como suele pasarle a Embarcadero lo primero que sacó faltaba mucho por pulir.
Responder Con Cita
  #9  
Antiguo 27-04-2020
oscorm oscorm is offline
Miembro
 
Registrado: ago 2004
Ubicación: Alcorcón
Posts: 59
Poder: 20
oscorm Va por buen camino
Yo uso https://www.winsoft.sk/json.htm y va de p.m. incluso con Delphi 6, 0 problemas y una excelente implementación.
Responder Con Cita
  #10  
Antiguo 27-04-2020
WHILENOTEOF WHILENOTEOF is offline
Miembro
 
Registrado: mar 2008
Posts: 229
Poder: 17
WHILENOTEOF Va camino a la fama
Cita:
Empezado por oscorm Ver Mensaje
Yo uso https://www.winsoft.sk/json.htm y va de p.m. incluso con Delphi 6, 0 problemas y una excelente implementación.
No los he probado, pero siendo de pago y viendo como implementan la asignación de los diferentes valores (en el ejemplo de la web), me quedo con https://github.com/ahausladen/JsonDataObjects .
Responder Con Cita
  #11  
Antiguo 27-04-2020
elrayo76 elrayo76 is offline
Miembro
 
Registrado: ene 2004
Ubicación: En la tierra, por eso mis archivos en la tierra y no en la nuebe...
Posts: 290
Poder: 21
elrayo76 Va por buen camino
Buenas,
Gracias a todos por sus recomendaciones. Ire viendo cada uno y dediciré con cual me quedo.
Al parecer no recomiendan usar lo que viene con el lenguaje.

Saludos,
El Rayo
__________________
Si tienes una función o procedimiento con diez parámetros, probablemente hayas olvidado uno

Última edición por Neftali [Germán.Estévez] fecha: 27-04-2020 a las 17:03:37.
Responder Con Cita
  #12  
Antiguo 27-04-2020
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.275
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
Cita:
Empezado por elrayo76 Ver Mensaje
Al parecer no recomiendan usar lo que viene con el lenguaje.

Yo si.
__________________
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.
Responder Con Cita
  #13  
Antiguo 27-04-2020
elrayo76 elrayo76 is offline
Miembro
 
Registrado: ene 2004
Ubicación: En la tierra, por eso mis archivos en la tierra y no en la nuebe...
Posts: 290
Poder: 21
elrayo76 Va por buen camino
Neftali, yo creía que no era recomendable usar los que tiene Delphi, ya que los mismos pueden no estar actualizados como indica las especificaciones JSON (esto se puede deber a que se hicieron modificaciones yal no salir versión nueva de Embarcadero estos no estaran actualizados).


Por otro lado pensaba en hacer compatibilidad con proyectos mas viejos que no están migrados a versiones donde tienen JSON nativo, ya que tengo un especie de framework que comprarten. Igual como creo que por el momento no usaran JSON pondre una directiva para identificar desde que versión de Delphi tiene que habilitarse y listo.


Otra cosa que quiero comentar es que desde hace un tiempo con la última versión de Firefox empezó el foro a dejar mas espacios de lo normal, aunque entre párrafo y párrafo dejo un solo espacio. Lo comento porque vi que editaste mi anterior comentario.



Saludos,
El Rayo
__________________
Si tienes una función o procedimiento con diez parámetros, probablemente hayas olvidado uno
Responder Con Cita
  #14  
Antiguo 27-04-2020
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por elrayo76 Ver Mensaje
Otra cosa que quiero comentar es que desde hace un tiempo con la última versión de Firefox empezó el foro a dejar mas espacios de lo normal, aunque entre párrafo y párrafo dejo un solo espacio. Lo comento porque vi que editaste mi anterior comentario.
Ocurre con cualquier navegador, a ver si encontramos el problema
Responder Con Cita
  #15  
Antiguo 27-04-2020
WHILENOTEOF WHILENOTEOF is offline
Miembro
 
Registrado: mar 2008
Posts: 229
Poder: 17
WHILENOTEOF Va camino a la fama
Bueno, sobre usar o no el que viene con el lenguaje, para mi depende (como todo) de para que lo utilices, si el json no es muy grande (no te preocupan los problemas de rendimiento) puede ser una opción. Yo aparte de la performance, me gusta la notación para establecer o modificar valores.
Responder Con Cita
  #16  
Antiguo 28-04-2020
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.275
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
Cita:
Empezado por elrayo76 Ver Mensaje
Neftali, yo creía que no era recomendable usar los que tiene Delphi, ya que los mismos pueden no estar actualizados como indica las especificaciones JSON (esto se puede deber a que se hicieron modificaciones yal no salir versión nueva de Embarcadero estos no estaran actualizados).
Tal vez eso fuera cierto en las primeras versiones donde Delphi implementó JSON (y de eso hace mucho tiempo y unas cuantas versiones), a día de hoy y en las últimas versiones que yo sepa no hay nada incorrecto.
Que yo sepa a día de hoy no hay problemas con la implementación de JSON en Delphi.

Cita:
Empezado por WHILENOTEOF Ver Mensaje
Bueno, sobre usar o no el que viene con el lenguaje, para mi depende (como todo) de para que lo utilices, si el json no es muy grande (no te preocupan los problemas de rendimiento) puede ser una opción. Yo aparte de la performance, me gusta la notación para establecer o modificar valores.
Mi opinión coincide con lo que comenta [WHILENOTEOF]. Tal vez exista alguna diferencia en cuanto a rendimiento con otros componentes comentados antes (no lo puedo ni asegurar ni desmentir). En el caso de que el rendimiento fuera algo "prioritario" o muy importante en la aplicación y teniendo la seguridad de que un paquete externo mejora mucho ese aspecto, sí que sería una opción para usarlo, pero en condiciones normales yo no lo haría.

Cita:
Empezado por elrayo76 Ver Mensaje
Otra cosa que quiero comentar es que desde hace un tiempo con la última versión de Firefox empezó el foro a dejar mas espacios de lo normal, aunque entre párrafo y párrafo dejo un solo espacio. Lo comento porque vi que editaste mi anterior comentario.
Como ha dicho [casimiro], lo tenemos "detectado".
__________________
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.
Responder Con Cita
  #17  
Antiguo 28-04-2020
Avatar de gatosoft
[gatosoft] gatosoft is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Bogotá, Colombia
Posts: 833
Poder: 21
gatosoft Va camino a la fama
Cita:
Empezado por Neftali [Germán.Estévez] Ver Mensaje
Yo si.
Yo también.. Es cierto que en las ultimas versiones han mejorado el soporte. Tan solo de Berlin a Rio, han tenido una muy buena transformación, debido a la evolución que ha tenido RAD Server.

Por mi parte sugiero utilizar helpers como los que vienen con DMVC Framework, que ayuda a la serialización de objetos Delphi, Datasets, y muchas otras estrcutras.

Tambien, mORMot tiene sus librerias asociadas.

Por el lado de SuperObject, tenía entendido que ya no tenia su soporte original, y ha sido adoptado y ha tenido forks de usuarios en la red. Pero no lo recomendaría... considero que es mejor usar la funcionalidad nativa y ayudarse pro librerias o helpers que tengan buen soporte y buena perspectiva para el futuro.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Dudas sobre como usar SQLite en Firemonkey aquiestamos SQL 3 23-02-2012 02:26:40
Error Raro al Usar IBX's sobre Firebird 2.0 AGAG4 Firebird e Interbase 17 01-10-2008 20:29:39
Sugerencia sobre que BD usar robertosc Varios 2 12-09-2008 13:59:51
consejo sobre que delphi usar?? UREÑA Varios 1 23-10-2007 19:13:57
duda sobre qué DB usar mak8888 Firebird e Interbase 5 20-06-2005 21:22:13


La franja horaria es GMT +2. Ahora son las 11:59:04.


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