Ver Mensaje Individual
  #2 (permalink)  
Antiguo 19/04/2012, 13:55
Avatar de Nemutagk
Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Problema para leer JSon - Sencha Touch 2

Después de estar leyendo eh visto que una petición JSONP es diferente a una petición JSON, la primera cuando se hace la petición se envía una variable GET con el nombre 'callback' y es necesario imprimirla antes de imprimir el JSON, si no se hace aunque tengamos un JSON valido lo tomara como invalido y marcará error, para ser sincero era la primera vez que usaba JSONP y no sabia realmente las diferencias pero bueno, ahora ya funciona...

Si no queda clara la razón por la que no funcionaba, dejo el código funcionando en PHP...

Código PHP:
Ver original
  1. <?php
  2.  
  3. $json = array(); //Aquí guardamos el array a convertir en JSON
  4.  
  5. //Imprimimos el JSON PERO, primero verificamos si es una llamada JSON o JSONP
  6. //para eso verificamos si existe la variable GET['callback']
  7. //Si existe imprimimos la variable, después imprimimos el json DENTRO de parentesis
  8. //Si no existe la variable imprimimos directamente el json
  9.  
  10. echo isset($_GET['callback']) ? $_GET['callback'].'('.json_encode($json).')' : json_encode($json);

Por cierto, el JSONP final quedaría así con Sencha Touch 2
Código Javascript:
Ver original
  1. Ext.data.JsonP.callback1({
  2.     "responseData": {
  3.         "feed": {
  4.             "entries": [{
  5.                 "title": "math 2",
  6.                 "author": "nemutagk",
  7.                 "content": "Lorem ipsum ad his scripta blandit partiendo, eum fastidii accumsan euripidis in, eum liber hendrerit an. Qui ut wisi vocibus suscipiantur, quo dicit ridens inciderint id. Quo mundi lobortis reformidans eu, legimus senserit definiebas an eos. Eu sit tincidunt incorrupte definitionem, vis mutat affert percipit cu, eirmod consectetuer signiferumque eu per. In usu latine equidem dolores. Quo no falli viris intellegam, ut fugit veritus placerat per. Ius id vidit volumus mandamus, vide veritus democritum te nec, ei eos debet libris consulatu. No mei ferri graeco dicunt, ad cum veri accommodare."
  8.             }, {
  9.                 "title": "math 47",
  10.                 "author": "nemutagk",
  11.                 "content": "Lorem ipsum ad his scripta blandit partiendo, eum fastidii accumsan euripidis in, eum liber hendrerit an. Qui ut wisi vocibus suscipiantur, quo dicit ridens inciderint id. Quo mundi lobortis reformidans eu, legimus senserit definiebas an eos. Eu sit tincidunt incorrupte definitionem, vis mutat affert percipit cu, eirmod consectetuer signiferumque eu per. In usu latine equidem dolores. Quo no falli viris intellegam, ut fugit veritus placerat per. Ius id vidit volumus mandamus, vide veritus democritum te nec, ei eos debet libris consulatu. No mei ferri graeco dicunt, ad cum veri accommodare."
  12.             }, {
  13.                 "title": "math 706",
  14.                 "author": "nemutagk",
  15.                 "content": "Lorem ipsum ad his scripta blandit partiendo, eum fastidii accumsan euripidis in, eum liber hendrerit an. Qui ut wisi vocibus suscipiantur, quo dicit ridens inciderint id. Quo mundi lobortis reformidans eu, legimus senserit definiebas an eos. Eu sit tincidunt incorrupte definitionem, vis mutat affert percipit cu, eirmod consectetuer signiferumque eu per. In usu latine equidem dolores. Quo no falli viris intellegam, ut fugit veritus placerat per. Ius id vidit volumus mandamus, vide veritus democritum te nec, ei eos debet libris consulatu. No mei ferri graeco dicunt, ad cum veri accommodare."
  16.             }]
  17.         }
  18.     }
  19. })
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)