Чи існує швидка функція для перетворення отриманих через JSON об'єктів jQuery getJSON
у дамп рядкової змінної (для відстеження / налагодження)?
Чи існує швидка функція для перетворення отриманих через JSON об'єктів jQuery getJSON
у дамп рядкової змінної (для відстеження / налагодження)?
Відповіді:
Так, JSON.stringify
його можна знайти тут , він включений у Firefox 3.5.4 і вище.
Стрингери JSON рухаються у зворотному напрямку, перетворюючи структури даних JavaScript у текст JSON. JSON не підтримує циклічні структури даних, тому будьте обережні, щоб не надавати циклічні структури стрингеру JSON. https://web.archive.org/web/20100611210643/http://www.json.org/js.html
var myJSONText = JSON.stringify(myObject, replacer);
Ви можете використовувати console.log()
Firebug або Chrome, щоб отримати хороший вигляд об’єкта тут, наприклад:
$.getJSON('my.json', function(data) {
console.log(data);
});
Якщо ви просто хочете переглянути рядок, перегляньте подання Ресурс у Chrome або подання Мережі у Firebug, щоб побачити фактичну відповідь рядка від сервера (не потрібно конвертувати його ... Ви отримали це таким чином).
Якщо ви хочете взяти цей рядок і розбити його для зручності перегляду, тут є чудовий інструмент: http://json.parser.online.fr/
getJSON
не вдасться мовчки, і ви будете намагатися зрозуміти, чому це не працює: add .fail(function(jqxhr, status, error) { alert(status + ", " + error);})
.
я особисто використовую плагін dump jquery для скидання об'єктів, він трохи схожий на функцію print_r () php Основне використання:
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"
)
}
*/
Це дуже зручно для читання, я також рекомендую цей сайт http://json.parser.online.fr/ для створення / аналізу / читання json, оскільки він має приємні кольори
Ось код, який я використовую. Ви повинні мати можливість адаптувати його до своїх потреб.
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>
щось разом із цим?
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;
}