Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-01-2015
MaxiDucoli MaxiDucoli is offline
Miembro
 
Registrado: feb 2006
Posts: 134
Poder: 19
MaxiDucoli Va por buen camino
Problemón con JSON

Buenas tardes, quería saber si me pueden ayudar con este problema que tengo.
No sé como hacer para separar los datos estos que tengo acá con JSON.

[{"jsonrpc":"2.0","id":3,"result":[{"userId":1986698431,"externalUserId":"100001529474550","name":"José Pérez","firstName":"José","pic":"https://fbcdn-profile-a.akamaihd.net/hprofile-ak-xpa1/v/t1.0-1/p50x50/10947221_865347666859541_63918475058584938.jpg?oh\u003d8a2e5db6442badcd49572e49b257ac9e\u0026oe\u003 d552D391D\u0026__gda__\u003d1432112641_0c2311f178961cbb9ea57c4c792d1de6","pic100":"https://fbcdn-profile-a.akamaihd.net/hprofile-ak-xpa1/v/t1.0-1/p50x50/10947221_865347666859541_63918475058584938.jpg?oh\u003d8a2e5db6442badcd49572e49b257ac9e\u0026oe\u003 d552D391D\u0026__gda__\u003d1432112641_0c2311f178961cbb9ea57c4c792d1de6","country":"US","langCode":" es_ES","lastSignInTime":1421802990,"friendType":"NETWORKED","pictureUrls":[]}]

Intenté con SuperObject, pero no entiendo nada.

Alguien me puede decir como hacer por favor??

Muchas gracias.
Responder Con Cita
  #2  
Antiguo 27-01-2015
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.267
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
No explicas qué problema tienes con el "parseo".
Si te da errores o es que no saber hacerlo.

Yo he probado a hacerlo con la librería uLKJSOn, de la que otras veces hemos hablado en los foros y a priori he podido obtener datos.
Eso sí, este texto tiene algunos problemas.
Por un lado no es correcto a nivel de elementos (no "cuadran" los elementos { } [ ]).

Por otro lado me están dando problemas los campos pic por los valores almacenados (la dirección https). deberías investigarlo.

Si revisas este hilo, por ejemplo, con ese código de ejemplo se puede "parsear" el texto a excepción de los elementos que te he comentado.
__________________
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
  #3  
Antiguo 27-01-2015
MaxiDucoli MaxiDucoli is offline
Miembro
 
Registrado: feb 2006
Posts: 134
Poder: 19
MaxiDucoli Va por buen camino
No. La verdad es que esto supera mi entender....
Soy medio duro cuando no le capto la onda a algo.

Me explicás por favor esto:

"jsonrpc": "2.0", ---------- ESTO ES UN DATO
"id": 3, ---------- ESTE ES OTRO DATO
"result": [{ ----------- Y ESTO SERIA UN ARRAY DE DATOS????

Yo necesito que me devuelva el valor de name. Y no sé como sacarlo. Me da error 0x0000000C en las uLKJSON y es obvio que es mi problema, por que no entiendo para nada el JSON por más que lea y lea en cualquier lado por internet.

Te paso a mostrar como lo estoy haciendo mal

Código Delphi [-]
procedure TForm1.Button2Click(Sender: TObject);
var
 JSON: TlkJSONobject;
  UnObjetoJSON: TlkJSONobject;
  UnArrayJSON,
  OtroArrayJSON: TlkJSONlist;
begin

   JSON:=TlkJSONobject.Create;
  try
    // parseamos el JSON
    JSON:=TlkJSON.ParseText(memo2.Text) as TlkJSONobject;

    UnArrayJSON:=JSON.Field['resul'] as TlkJSONlist;

    for n:=0 to UnArrayJSON.Count - 1 do
        begin
          // ...
          memo2.Text := UnArrayJSON.Child[n].Field['name'].Value;
        end;
  finally
    JSON.Free;
  end;



end;

La verdad es que no entiendo nada.
Gracias.
Responder Con Cita
  #4  
Antiguo 27-01-2015
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.267
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
Simplificando mucho, podemos decir que en un JSON tienes elementos simples, objetos y arrays.

En un ejemplo como este:

Código:
{
  "menu": {
    "id": "file",
    "value": "File",
    "popup": {
      "menuitem": [
        {
          "value": "New",
          "onclick": "CreateNewDoc()"
        },
        {
          "value": "Open",
          "onclick": "OpenDoc()"
        },
        {
          "value": "Close",
          "onclick": "CloseDoc()"
        }
      ]
    }
  }
}
Esto podría ser un elemento simple:
Código:
"id": "file",
Esto es un array de elementos:
Código:
"menuitem": [
        {
          "value": "New",
          "onclick": "CreateNewDoc()"
        },
        {
          "value": "Open",
          "onclick": "OpenDoc()"
        },
        {
          "value": "Close",
          "onclick": "CloseDoc()"
        }
      ]
Y el elemento menu sería un objeto.

Los objetos y los array pueden contener a su vez objetos, arrays o elementos simples.
__________________
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
  #5  
Antiguo 27-01-2015
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.267
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
Como creo que te comenté antes, el texto que has colocado, es incorrecto o está incompleto (empecemos por ahí).

Si lo formateamos correctamente (http://jsonviewer.stack.hu/) obtenemos esto (he abreviado las URL's para que se vea menjor):
Código:
[
  {
    "jsonrpc": "2.0",
    "id": 3,
    "result":[
      {
        "userId": 1986698431,
        "externalUserId": "100001529474550",
        "name": "José Pérez",
        "firstName": "José",
        "pic": "https://fbcdn-profile-a.akamaihd...6",
        "pic100": "https://fbcdn-profile-a.akamaihd....",
        "country": "US",
        "langCode": " es_ES",
        "lastSignInTime": 1421802990,
        "friendType": "NETWORKED",
        "pictureUrls": [
          
        ]
      }
    ]
Creo que el inicio no es correcto y además parece incompleto.
¿Realmente ese texto es el completo con el que estás trabajando?
__________________
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
  #6  
Antiguo 27-01-2015
MaxiDucoli MaxiDucoli is offline
Miembro
 
Registrado: feb 2006
Posts: 134
Poder: 19
MaxiDucoli Va por buen camino
El texto completo es muy largo, igual lo coloco.
Pero el JSON me da nil cuando pongo:

Hago una variable llamada nombre : string y cargo el contenido de un memo en esa variable (seria el texto completo del fondo) y lo trato de cargar de la siguiente manera:


Código Delphi [-]
var
 JSON: TlkJSONobject;
  UnObjetoJSON: TlkJSONobject;
  UnArrayJSON,
  OtroArrayJSON: TlkJSONlist;
begin

   JSON:=TlkJSONobject.Create;
  try
    // parseamos el JSON
    JSON:=TlkJSON.ParseText(memo2.Text) as TlkJSONobject;

    UnArrayJSON:=JSON.Field['resul'] as TlkJSONlist;

    for n:=0 to UnArrayJSON.Count - 1 do
        begin
          // ...
          memo2.Text := UnArrayJSON.Child[n].Field['name'].Value;
        end;
  finally
    JSON.Free;
  end;


Cuando voy a debugger, JSON me sale con valor NIL- Por lo que entiendo no está cargando el strin en ParseText.
Es así??






El texto esta adjunto por que me paso de los 2000 caracateres.
Archivos Adjuntos
Tipo de Archivo: rar texto.rar (5,2 KB, 15 visitas)
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
Json de PHP a Imagen Kubelo Gráficos 5 20-06-2014 09:05:59
Como deserializar array JSON desde C++ Builder? DSK25 C++ Builder 1 17-02-2013 22:51:20
JSON en aplicacion Delphi Cecil Varios 4 13-09-2012 22:31:37
Fecha JSON. BuenaOnda Varios 4 27-11-2011 18:46:27
PROBLEMON!! (PHP+Apache de 1.x a 2.x) papulo PHP 18 09-08-2006 16:11:45


La franja horaria es GMT +2. Ahora son las 06:07:07.


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