Üzerinden alınan JSON nesnelerini jQuery getJSON
dize değişken dökümüne dönüştürmek için hızlı bir işlev var mı (izleme / hata ayıklama amaçları için)?
Üzerinden alınan JSON nesnelerini jQuery getJSON
dize değişken dökümüne dönüştürmek için hızlı bir işlev var mı (izleme / hata ayıklama amaçları için)?
Yanıtlar:
Evet, buradaJSON.stringify
bulunabilir , Firefox 3.5.4 ve üzeri sürümlere dahildir .
JSON dizgeci ters yönde hareket ederek JavaScript veri yapılarını JSON metnine dönüştürür. JSON döngüsel veri yapılarını desteklemez, bu nedenle JSON dizgecisine döngüsel yapılar vermemeye dikkat edin. https://web.archive.org/web/20100611210643/http://www.json.org/js.html
var myJSONText = JSON.stringify(myObject, replacer);
Sen kullanabilirsiniz console.log()
böyle, buradan iyi bir nesne görünüm elde etmek için Firebug veya Chrome'da:
$.getJSON('my.json', function(data) {
console.log(data);
});
Yalnızca dizeyi görüntülemek istiyorsanız , sunucudan gelen gerçek dize yanıtını görmek için Chrome'daki Kaynak görünümüne veya Firebug'daki Net görünümüne bakın (dönüştürmenize gerek yok ... bu şekilde aldınız).
Bu dizeyi almak ve kolay görüntüleme için parçalamak istiyorsanız, burada mükemmel bir araç var: http://json.parser.online.fr/
getJSON
sessizce başarısız olur ve neden çalışmadığını anlamakta zorlanacaksınız: ekleyin .fail(function(jqxhr, status, error) { alert(status + ", " + error);})
.
Ben şahsen jquery dump eklentisini nesneleri dökmek için kullanıyorum, php'nin print_r () işlevine biraz benziyor Temel kullanım:
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"
)
}
*/
İnsan tarafından okunabilir, bu siteyi http://json.parser.online.fr/ json oluşturmak / ayrıştırmak / okumak için tavsiye ediyorum, çünkü güzel renkleri var
İşte kullandığım kod. İhtiyaçlarınıza göre uyarlayabilmelisiniz.
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>
bununla ilgili bir şey mi var?
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;
}