Есть ли быстрая функция для преобразования объектов JSON, полученных через, jQuery getJSON
в дамп строковой переменной (для целей отслеживания / отладки)?
82
Есть ли быстрая функция для преобразования объектов 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);})
.Я лично использую плагин jquery dump для дампа объектов, он немного похож на функцию php print_r () Базовое использование:
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; }
источник