62 votos

jQuery /Javascript - json to string variable dump

¿Hay una función rápida para convertir los objetos json recibidos a través de jQuery getJSON a un vertedero de variables de cadena (con fines de rastreo/depuración)?

95voto

Anders Puntos 3568

Sí, JSON.stringify se puede encontrar aquí Es incluido en Firefox 3.5.4 y superior.

Un stringifier JSON va en la dirección opuesta, convirtiendo las estructuras de datos de JavaScript en texto JSON. JSON no soporta estructuras de datos cíclicos, así que ten cuidado de no darle estructuras cíclicas al stringifier JSON. http://www.json.org/JS.html

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

23voto

Nick Craver Puntos 313913

Puedes usar console.log() en Firebug o Chrome para obtener una buena vista del objeto aquí, como esta:

$.getJSON('my.json', function(data) {
  console.log(data);
});

Si sólo quieres ver la cadena, mira la Vista de recursos en Chrome o el Vista de la red en Firebug para ver la respuesta real de la cadena del servidor (no es necesario convertirla... la recibió de esta manera).

Si quieres tomar esa cadena y romperla para que sea fácil de ver, hay una excelente herramienta aquí: http://json.parser.online.fr/

12voto

Ties Puntos 2205

Yo personalmente uso el jquery dump plugin mucho para volcar objetos, es un poco similar a la función print_r() de PHP Uso básico:

var obj = {
            hubba: "Some string...",
            bubba: 12.5,
            dubba: ["One", "Two", "Three"]
        }
$("#dump").append($.dump(obj));
/* will return:
Object { 
     hubba: "Some string..."
     bubba: 12.5
     dubba: Array ( 
          0 => "One"
          1 => "Two"
          2 => "Three"
     )
}
*/

Es muy legible para los humanos, también recomiendo este sitio http://json.parser.online.fr/ para crear/preparar/lectura json, porque tiene bonitos colores

4voto

user579338 Puntos 83

Aquí está el código que uso. Deberías ser capaz de adaptarlo a tus necesidades.

function process_test_json() {
  var jsonDataArr = { "Errors":[],"Success":true,"Data":{"step0":{"collectionNameStr":"dei_ideas_org_Private","url_root":"http:\/\/192.168.1.128:8500\/dei-ideas_org\/","collectionPathStr":"C:\\ColdFusion8\\wwwroot\\dei-ideas_org\\wwwrootchapter0-2\\verity_collections\\","writeVerityLastFileNameStr":"C:\\ColdFusion8\\wwwroot\\dei-ideas_org\\wwwroot\\chapter0-2\\VerityLastFileName.txt","doneFlag":false,"state_dbrec":{},"errorMsgStr":"","fileroot":"C:\\ColdFusion8\\wwwroot\\dei-ideas_org\\wwwroot"}}};

  var htmlStr= "<h3 class='recurse_title'>[jsonDataArr] struct is</h3> " + recurse( jsonDataArr );
  alert( htmlStr );
  $( document.createElement('div') ).attr( "class", "main_div").html( htmlStr ).appendTo('div#out');
  $("div#outAsHtml").text( $("div#out").html() ); 
}
function recurse( data ) {
  var htmlRetStr = "<ul class='recurseObj' >"; 
  for (var key in data) {
        if (typeof(data[key])== 'object' && data[key] != null) {
            htmlRetStr += "<li class='keyObj' ><strong>" + key + ":</strong><ul class='recurseSubObj' >";
            htmlRetStr += recurse( data[key] );
            htmlRetStr += '</ul  ></li   >';
        } else {
            htmlRetStr += ("<li class='keyStr' ><strong>" + key + ': </strong>&quot;' + data[key] + '&quot;</li  >' );
        }
  };
  htmlRetStr += '</ul >';    
  return( htmlRetStr );
}

</script>
</head><body>
<button onclick="process_test_json()" >Run process_test_json()</button>
<div id="out"></div>
<div id="outAsHtml"></div>
</body>

2voto

hotzen Puntos 828

algo a lo largo de esto?

function dump(x, indent) {
    var indent = indent || '';
    var s = '';
    if (Array.isArray(x)) {
        s += '[';
        for (var i=0; i<x.length; i++) {
            s += dump(x[i], indent)
            if (i < x.length-1) s += ', ';
        }
        s +=']';
    } else if (x === null) {
      s = 'NULL';
    } else switch(typeof x) {
        case 'undefined':
            s += 'UNDEFINED';
            break;
        case 'object':
            s += "{ ";
            var first = true;
            for (var p in x) {
                if (!first) s += indent + '  ';
                s += p + ': ';
                s += dump(x[p], indent + '  ');
                s += "\n"
                first = false;
            }
            s += '}';
            break;
        case 'boolean':
            s += (x) ? 'TRUE' : 'FALSE';
            break;
        case 'number':
            s += x;
            break;
        case 'string':
            s += '"' + x + '"';
            break;
        case 'function':
            s += '<FUNCTION>';
            break;
        default:
            s += x;
            break;
    }
    return s;
}

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X