2012-01-17 9 views
8

Quiero depurar mi respuesta (json) y hacer que se muestre como una cadena en un cuadro de alerta. ¿Hay algo conveniente que hacer?Cómo convertir un objeto json en una cadena en un cuadro de alerta?

var myjson = { Name : "Marko" }; 

alert(myjson.toString()); // ? [Object] !!! 
+1

@casperOne "not a real question". ¡Venga! Gran Q marko. – oma

+0

@oma No, no lo es. No muestra ningún esfuerzo de investigación original (que "no es una pregunta real") y tampoco es "constructivo" (lo que es conveniente es subjetivo). Dicho esto, las * respuestas * están bien, pero eso no hace que la pregunta sea buena. La pregunta carece de calidad desde la perspectiva de desbordamiento de pila. – casperOne

+1

¡Creo que es una pregunta válida desde el punto de vista de un programador! Y la pregunta es específica. – marko

Respuesta

9

La manera más conveniente, sería el uso de la consola de su navegador.

console.log(json); 

En la mayoría de los navegadores se obtiene una vista muy clara de los contenidos de json.

Alternativly usted podría hacer una cadena con un bucle for:

var output = ''; 
for (var entry in json) { 
    output += 'key: ' + entry + ' | value: ' + json[entry] + '\n'; 
} 
alert(output); 

pero esto no es recursiva. Aquí hay una demostración de trabajo: http://jsfiddle.net/n695V/

+0

Si tiene dos objetos, que el primero es un objeto y el último es una matriz de objetos, esta solución no funciona tan bien. Y estoy trabajando en un servidor Windows remoto que solo tiene IE9. – marko

2

Puede analizar el texto de respuesta de una solicitud con Firebug o la consola incorporada de Google Chrome.

3

Puede usar JSON.stringify. Sin embargo, no sé si funciona en todos los navegadores comunes.

alerta (JSON.stringify (json-object));

+0

Dependiendo del navegador puede necesitar incluir esto en su página para hacer que JSON.stringify funcione https://github.com/douglascrockford/JSON-js/blob/master/json2.js – MrKiane

0

probar este

var myJSONText = JSON.stringify(myObject, replacer); 

A JSON stringifier va en la dirección opuesta, la conversión de las estructuras de datos de JavaScript en texto JSON. JSON no admite estructuras de datos cíclicos, por lo que debe tener cuidado de no dar estructuras cíclicas al secuenciador JSON. http://www.json.org/js.html

16

puede utilizar lo siguiente en su respuesta de éxito:

alert(JSON.stringify(data)); 
1

Obtendrá la respuesta clara, si proporciona la estructura JSON.

Por ejemplo, si tiene la estructura JSON debajo.

var json={ “id”:23,”name”:”marko”}; 
    for(key in json){ 
      alert(key+'->'+json[key]); 
    } 

No es sencillo para el nodo único anterior json. Si la estructura JSON es más profunda, necesita iterar hasta obtener el valor :)

Or. La forma más fácil es hacer console.log (json); y ver en firebug, obtendrás lo que está dentro de json block.

0
function JSON2string (jsonobject,prefix) { 
    if (!prefix) prefix=""; 
    if (typeof(jsonobject)=="string") return jsonobject; 
    if (typeof(jsonobject)=="number") return jsonobject.toString(); 
    if (typeof(jsonobject)=="object") { 
    var s="Object:\n" 
    var newprefix=" "+prefix; 
    for (var i in jsonobject) s+=prefix+i+"="+JSON2String(jsonobject[i],newprefix)+"\n"; 
    return s; 
    } 
    return "<unhandled>"; 
} 
Cuestiones relacionadas