![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Leer fichero JSON
Un saludo para todos.
Tengo la siguiente estructura en JSON, que cuenta con tres elementos(aunque estos pueden ser más o menos elementos en la vida real): Cita:
nombre: destinatario: mensaje: estado: He leído que utilizando la unidad System.Json se puede, pero por más que busco y leo no encuentro la manera. En los ejemplos que encuentro siempre ponen de ejemplo otras estructuras JSON distintas a la que tengo yo y cuando intento modificarlos no hay manera. Utilizo Delphi 10.2 Sin más, espero alguien me pudiera ayudar… Última edición por Neftali [Germán.Estévez] fecha: 10-01-2019 a las 09:55:12. Razón: Corregir formato |
#2
|
||||
|
||||
Te aconsejo que hagas una búsqueda en los foros por la palabra "json", salen varios enlaces que te deben servir.
Aunque tampoco has dicho exactamente qué error te sale.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#3
|
||||
|
||||
Lo primero que habría que hacer es colocar un JSON válido o completo.
El trozo de JSON que has puesto no cumple esa condición. Para validarlo puedes probar cualquiera de los validadores en línea que hay:
Una vez que lo tengas correcto, se puede realizar un parse con las clases de Delphi que comentas, utilizar otras como superobject o alguna otra herramienta externa como JSONToDelphiClass, que te genera de forma automática las clases delphi a partir de un JSON, para tratarlo cómodamente.
__________________
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. |
#4
|
|||
|
|||
Leer JSON
Muchas gracias Neftali y Casimiro Notevi
Germán nuevamente me tiras un cable hermano. Tienes toda la rasón: no es un JSON válido, debería quedarme de esta forma (no les he puesto la manera en que lo traté de la forma en que esta porque la verdad me da hasta pena por lo disparatado e ineficiente del invento): Código:
[{ "nombre": "Juan", "destinatario": "Pedro", "mensaje": "de Juan para Pedro", "estado": "nuevo" }, { "nombre": "Alberto", "destinatario": "Pedro", "mensaje": "de Alberto para Pedro", "estado": "nuevo" }, { "nombre": "Carlos", "destinatario": "Pedro", "mensaje": "de Carlos para Pedro", "estado": "nuevo" }] Código PHP:
Código PHP:
Código PHP:
Código PHP:
Código PHP:
Código:
[,{ "nombre": "Juan", "destinatario": "Pedro", "mensaje": "de Juan para Pedro", … |
#5
|
|||
|
|||
Ya me falta menos
Saludos nuevamente.
Luego de tener el JSON con un formato correcto, este es el código para parsearlo y obtener los datos. Aún me falta quitar en el PHP la coma que me genera de más para que todo ande como la seda.
Neftali, Cuando comencé con este proyecto, que no es más que la interacción de una app android con un servicio web, esta y las otras entradas relacionadas fueron las que más me ayudaron a tener claro lo que debía hacer. Más allá de la metodología en sí que he utilizado: MUCHAS GRACIAS HERMANO. http://neftali.clubdelphi.com/25-gen...ervice-en-php/ Aquí te dejo unas imágenes para que veas lo que estoy realizando y por si tienes alguna sugerencia. Espero puedas verlas. https://nube.uic.cu/index.php/s/gfzw6tFxwTCwrCN |
#6
|
||||
|
||||
Cita:
La verdad es que tiene muy buena pinta. ![]() No si si lo has revisado. En los ejemplos de la web verás que se usa el componente TRestResponseAdapter. No se si lo estás utilizando, pero te puede facilitar bastante el trabajo a la hora de recuperar resultados.
__________________
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. |
#7
|
|||
|
|||
Cita:
Primero, gracias por el elogio hermano. Intenté crear una intefaz lo más novedosa posible, sin seguir lo estereotipos que todo el mundo usa. Al final, dejando un poco la modestia de un lado, creo que lo he logrado (por lo menos, aunque no lo creas, la opinión que me has dado vale mucho para mi). Muchos de mis compañeros me han criticado por crearla así, le he explicado mi objetivo y forma de pensar, y les he hecho caso omiso. En mi país hay un dicho que reza: rindes más que una raspadura. Esto se le dice a una persona cuando alaga mucho a otra. No quiero que pienses que me estoy portando de esa manera, solo que en verdad cuenta para mí lo que me dices. Correcto, vi que el ejemplo utiliza TRestResponseAdapter pero siéndote sincero, me perdí cuando intenté usarlo ![]() Lo de la coma que me sobra en el JSON, lo resolví desde el propio programa eliminándola. Como sé que la estructura de los datos no van a variar… Ahora: tengo unas cosas que no sé realizar y que me harán están haciendo falta en este proyecto. No sé si pedirte ayuda por aquí, abrir otro hilo (no creo que sea lo mejor porque es un tema muy tratado que no he podido implementar por mucho que he leído), o escribirte por privado. Bueno… usted me dice. |
#8
|
||||
|
||||
Cita:
Hola. Si son dudas sobre problemas distintos, lo correcto es que abras otra hilo para no mezclar temas. Explícalo aquí con detalle y seguro que entre todos podremos ayudarte. El tema de los privados no es recomendable, primero porque otra gente (que los hay que saben mucho más que yo por aquí) no podrán ayudarte y también porque esa información por privado no está disponible para otros usuarios que la necesiten porque tengan problemas similares.
__________________
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. |
#9
|
|||
|
|||
Vale.
Organizaré las ideas y abriré otro hilo cuando no encuentre la solución. |
#10
|
|||
|
|||
[Resuelto lo de la coma]
Como les comenté en un mensaje anterior, tenía problemas en el código PHP ya que me generaba una coma (,) de más. La solución es la siguiente:
Código PHP:
Con este código doy por RESUELTO el tema pricipal del hilo. |
#11
|
||||
|
||||
![]() ![]() ![]()
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Leer JSON sin nombre | Ramsay | Varios | 2 | 27-09-2016 14:52:52 |
Leer fichero ini | Angel.Matilla | C++ Builder | 13 | 21-04-2015 23:28:27 |
Leer fichero XML | itsi | Internet | 1 | 23-10-2008 22:50:15 |
leer de fichero | machingol | Varios | 7 | 09-05-2007 17:22:42 |
Leer fichero | rocio84 | Varios | 1 | 21-05-2006 10:45:06 |
![]() |
|