Gibt es eine Schnellfunktion zum Konvertieren von über empfangenen JSON-Objekten jQuery getJSON
in einen String-Variablen-Dump (für Tracing- / Debugging-Zwecke)?
Gibt es eine Schnellfunktion zum Konvertieren von über empfangenen JSON-Objekten jQuery getJSON
in einen String-Variablen-Dump (für Tracing- / Debugging-Zwecke)?
Antworten:
Ja, JSON.stringify
kann gefunden werden hier , es ist enthalten in Firefox 3.5.4 und höher.
Ein JSON-Stringifizierer geht in die entgegengesetzte Richtung und konvertiert JavaScript-Datenstrukturen in JSON-Text. JSON unterstützt keine zyklischen Datenstrukturen. Achten Sie daher darauf, dem JSON-Stringifizierer keine zyklischen Strukturen zuzuweisen. https://web.archive.org/web/20100611210643/http://www.json.org/js.html
var myJSONText = JSON.stringify(myObject, replacer);
Sie können console.log()
in Firebug oder Chrome verwenden, um hier eine gute Objektansicht zu erhalten:
$.getJSON('my.json', function(data) {
console.log(data);
});
Wenn Sie nur die Zeichenfolge anzeigen möchten , sehen Sie in der Ressourcenansicht in Chrome oder in der Netzansicht in Firebug die tatsächliche Zeichenfolgenantwort vom Server (Sie müssen sie nicht konvertieren ... Sie haben sie auf diese Weise erhalten).
Wenn Sie diese Zeichenfolge für eine einfache Anzeige zerlegen möchten, finden Sie hier ein hervorragendes Tool: http://json.parser.online.fr/
getJSON
auftritt und Sie nur schwer verstehen können, warum dies nicht funktioniert: Hinzufügen .fail(function(jqxhr, status, error) { alert(status + ", " + error);})
.
Ich persönlich benutze das JQuery Dump Plugin viel, um Objekte zu sichern. Es ist ein bisschen ähnlich wie die print_r () Funktion von PHP. Grundlegende Verwendung:
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 ist sehr menschlich lesbar, ich empfehle auch diese Seite http://json.parser.online.fr/ zum Erstellen / Parsen / Lesen von Json, weil es schöne Farben hat
Hier ist der Code, den ich benutze. Sie sollten in der Lage sein, es an Ihre Bedürfnisse anzupassen.
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>
etwas entlang dieser?
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;
}