2011-08-25 14 views
19

He leído la guía del usuario de jsFiddle para su JSON echo feature pero sin tener la suerte de producir un jsFiddle en funcionamiento para hacer eco de un mensaje JSON utilizando JQuery.¿Cómo puedo usar la función de eco JSFiddle con JQuery?

¿Cómo puedo crear un jsFiddle hacerse eco de la JSON de su guía:

data: { 
    json: JSON.encode({ 
     text: 'some text', 
     array: [1, 2, 'three'], 
     object: { 
      par1: 'another text', 
      par2: [3, 2, 'one'], 
      par3: {} 
     } 
    }), 
    delay: 3 
} 

El único ejemplo proporcionado en Mootools es que nunca he usado. Entonces, una traducción simple del ejemplo de mootools en JQuery sería suficiente.

+0

leer http://doc.jsfiddle.net/use/echo.html – Baz1nga

+2

Gracias pero ya lo leí. Mi pregunta está basada en eso de hecho. Su único ejemplo está en Mootools. Espero que alguien pueda proporcionar una muestra simple usando jquery # ajax – kasdega

+1

@BoltClock ¿por qué cerraría esto? es una pregunta válida con una respuesta válida. JSFiddle se usa todo el tiempo en este sitio para explicar o mostrar respuestas y no tiene un ejemplo sólido de cómo usar su herramienta con un falso mensaje JSON. Bazlnga brindó una respuesta perfectamente buena a la pregunta. – kasdega

Respuesta

23
var data = { 
     json: $.toJSON({ 
      text: 'some text', 
      array: [1, 2, 'three'], 
      object: { 
       par1: 'another text', 
       par2: [3, 2, 'one'], 
       par3: {} 
      } 
     }), 
     delay: 3 
} 


$.ajax({ 
    url:"/echo/json/", 
    data:data, 
    type:"POST", 
    success:function(response) 
    { 
     console.log(response); 
    } 
}); 

Live Demo

Nota he añadido na recursos additonal .. jquery json-

Demo with FireBug Console on View (sin necesidad de levantar la consola de desarrollo para ver el retorno)

+0

Muchas gracias, esto ayuda tremendamente – kasdega

+0

Esto se rompe si NoScript está instalado, debido a la forma en que jsFiddle incluye bibliotecas ad-hoc como su jquery-json. –

+0

@Brock Adams: estoy considerando poner jsFiddle en mi lista blanca NoScript y olvidarme de ello ... – BoltClock

5

Algo como esto:

$.get('/echo/jsonp/', { foo : 'bar', biz : 'buzz' }) 
    .success(function(data){ console.log (data) }) 

JS Fiddle example.

Básicamente, señale la parte url de su función $.ajax en /echo/jsonp/ y debe configurarla. Los documentos de JSFiddle dicen que /echo/json/ también funciona, pero parece que esa URL en particular no funciona en este momento; Sin embargo, usar el servicio JSONP sin especificar una devolución de llamada funciona bien.

+0

Ya intento usar el/echo/json y parece que no me devuelve ningún dato.Sin embargo, su ejemplo JSONP funciona. – kasdega

+0

Sí, parece que su servicio JSON no funciona. – ajm

+1

¿tiene un ejemplo usando $ .ajax() para lo que debería parecer cuando su servicio está activo? ¿O puedes cambiar tu ejemplo de .get? – kasdega

12

También puede utilizar JSON .stringify

$.ajax({ 
    url:"/echo/json/", 
    data:{ 
    json: JSON.stringify({ 
     text: 'some text', 
     array: [1, 2, 'three'], 
     object: { 
      par1: 'another text', 
      par2: [3, 2, 'one'], 
      par3: {} 
     } 
     }), 
    delay: 3 
    }, 
    type:"POST", 
    success:function(response) { 
    console.log(response); 
    } 
}); 

+4

+1; ¿Por "también" quiere decir "debe"? http://stackoverflow.com/questions/7759619/getting-this-error-tojson-is-not-a-function –

+2

En teoría, puede preparar su propia función de stringify, así que tal vez sea mejor usar 'también' – timsly

Cuestiones relacionadas