¿Existe una función rápida para convertir los objetos JSON recibidos a través jQuery getJSON
de un volcado de variable de cadena (con fines de seguimiento / depuración)?
javascript
jquery
json
variables
en un
fuente
fuente
Respuestas:
Sí,
JSON.stringify
se puede encontrar aquí , está incluido en Firefox 3.5.4 y superior.Un stringifier JSON va en la dirección opuesta, convirtiendo las estructuras de datos JavaScript en texto JSON. JSON no admite estructuras de datos cíclicas, así que tenga cuidado de no dar estructuras cíclicas al stringifier JSON. https://web.archive.org/web/20100611210643/http://www.json.org/js.html
var myJSONText = JSON.stringify(myObject, replacer);
fuente
Puede usar
console.log()
en Firebug o Chrome para obtener una buena vista de objetos aquí, como este:$.getJSON('my.json', function(data) { console.log(data); });
Si solo desea ver la cadena, mire la vista de recursos en Chrome o la vista de red en Firebug para ver la respuesta de cadena real del servidor (no es necesario convertirla ... la recibió de esta manera).
Si desea tomar esa cadena y dividirla para verla fácilmente, hay una excelente herramienta aquí: http://json.parser.online.fr/
fuente
getJSON
fallará silenciosamente y tendrá dificultades para entender por qué no funciona: agregar.fail(function(jqxhr, status, error) { alert(status + ", " + error);})
.Yo personalmente uso mucho el plugin jquery dump 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 por humanos, también recomiendo este sitio http://json.parser.online.fr/ para crear / analizar / leer json, porque tiene colores agradables
fuente
Aquí está el código que utilizo. Debería poder adaptarlo a sus 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>"' + data[key] + '"</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>
fuente
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; }
fuente