Stampa il contenuto dell’object JavaScript?

In genere se usiamo solo alert(object); mostrerà come [object Object] . Come stampare tutti i parametri di contenuto di un object in JavaScript?

Se si utilizza Firefox, alert(object.toSource()) dovrebbe essere sufficiente per semplici scopi di debug.

Questo ti darà un risultato molto carino con l’object JSON rientrato:

 alert(JSON.stringify(YOUR_OBJECT_HERE, null, 4)); 

Il secondo argomento modifica il contenuto della stringa prima di restituirlo. Il terzo argomento specifica quanti spazi utilizzare come spazio bianco per la leggibilità.

Oltre a usare un debugger, puoi anche accedere a tutti gli elementi di un object usando un ciclo foreach . La seguente funzione printObject dovrebbe alert() l’object che mostra tutte le proprietà e i rispettivi valori.

 function printObject(o) { var out = ''; for (var p in o) { out += p + ': ' + o[p] + '\n'; } alert(out); } // now test it: var myObject = {'something': 1, 'other thing': 2}; printObject(myObject); 

È preferibile utilizzare uno strumento di ispezione DOM perché consente di scavare sotto le proprietà che sono gli oggetti stessi. Firefox ha FireBug ma tutti gli altri browser principali (IE, Chrome, Safari) dispongono anche di strumenti di debug integrati che è necessario verificare.

Se si desidera avere una rappresentazione di stringa di un object, è ansible utilizzare la funzione JSON.stringify , utilizzando una libreria JSON .

Stampa il contenuto dell’object che puoi utilizzare

 console.log(obj_str); 

puoi vedere il risultato in console come sotto.

 Object {description: "test"} 

Per la console aperta premi F12 nel browser chrome, troverai la scheda della console in modalità debug.

È ansible utilizzare il file util.inspect (object) di Node per stampare la struttura dell’object.

È particolarmente utile quando il tuo object ha dipendenze circolari per es

 $ node var obj = { "name" : "John", "surname" : "Doe" } obj.self_ref = obj; util = require("util"); var obj_str = util.inspect(obj); console.log(obj_str); // prints { name: 'John', surname: 'Doe', self_ref: [Circular] } 

In questo caso, JSON.stringify genera un’eccezione: TypeError: Converting circular structure to JSON

Dovresti considerare l’utilizzo di FireBug per il debug di JavaScript. Vi permetterà di ispezionare intertriggersmente tutte le vostre variabili e persino di passare attraverso le funzioni.

Usa dir (object). Oppure puoi sempre scaricare Firebug per Firefox (davvero utile).

Javascript per tutti!

 String.prototype.repeat = function(num) { if (num < 0) { return ''; } else { return new Array(num + 1).join(this); } }; function is_defined(x) { return typeof x !== 'undefined'; } function is_object(x) { return Object.prototype.toString.call(x) === "[object Object]"; } function is_array(x) { return Object.prototype.toString.call(x) === "[object Array]"; } /** * Main. */ function xlog(v, label) { var tab = 0; var rt = function() { return ' '.repeat(tab); }; // Log Fn var lg = function(x) { // Limit if (tab > 10) return '[...]'; var r = ''; if (!is_defined(x)) { r = '[VAR: UNDEFINED]'; } else if (x === '') { r = '[VAR: EMPTY STRING]'; } else if (is_array(x)) { r = '[\n'; tab++; for (var k in x) { r += rt() + k + ' : ' + lg(x[k]) + ',\n'; } tab--; r += rt() + ']'; } else if (is_object(x)) { r = '{\n'; tab++; for (var k in x) { r += rt() + k + ' : ' + lg(x[k]) + ',\n'; } tab--; r += rt() + '}'; } else { r = x; } return r; }; // Space document.write('\n\n'); // Log document.write('< ' + (is_defined(label) ? (label + ' ') : '') + Object.prototype.toString.call(v) + ' >\n' + lg(v)); }; // Demo // var o = { 'aaa' : 123, 'bbb' : 'zzzz', 'o' : { 'obj1' : 'val1', 'obj2' : 'val2', 'obj3' : [1, 3, 5, 6], 'obj4' : { 'a' : 'aaaa', 'b' : null } }, 'a' : [ 'asd', 123, false, true ], 'func' : function() { alert('test'); }, 'fff' : false, 't' : true, 'nnn' : null }; xlog(o, 'Object'); // With label xlog(o); // Without label xlog(['asd', 'bbb', 123, true], 'ARRAY Title!'); var no_definido; xlog(no_definido, 'Undefined!'); xlog(true); xlog('', 'Empty String'); 

Puoi dare ai tuoi oggetti i propri metodi toString nei loro prototipi.

È ansible utilizzare json.js da http://www.json.org/js.html per modificare i dati JSON in dati stringa.

È inoltre ansible utilizzare il metodo Object.inspect () di Prototype, che “Restituisce la rappresentazione di stringa orientata debug dell’object”.

http://api.prototypejs.org/language/Object/inspect/

Funzione semplice per avvisare il contenuto di un object o di un array.
Chiama questa funzione con un array o una stringa o un object che avvisa il contenuto.

Funzione

 function print_r(printthis, returnoutput) { var output = ''; if($.isArray(printthis) || typeof(printthis) == 'object') { for(var i in printthis) { output += i + ' : ' + print_r(printthis[i], true) + '\n'; } }else { output += printthis; } if(returnoutput && returnoutput == true) { return output; }else { alert(output); } } 

uso

 var data = [1, 2, 3, 4]; print_r(data); 

Internet Explorer 8 ha strumenti di sviluppo simili a Firebug per Firefox. Opera ha Opera DragonFly e Google Chrome ha anche qualcosa chiamato Developer Tools (Shift + Ctrl + J).

Ecco una risposta più dettagliata per eseguire il debug di JavaScript in IE6-8: Utilizzo degli “Strumenti per sviluppatori” di IE8 per eseguire il debug di versioni precedenti di IE

Ho affrontato un problema simile, La ragione per cui ero a fare uso di ajax per recuperare i dati. In questo caso ho fatto due chiamate asincrone ajax. In uno ho appena restituito la stringa msg e mostrata in allerta. Nella seconda chiamata ajax, prendo l’arraylist nel formato json e lo decodifico in js. Quindi la mia seconda richiesta è stata utilizzata per elaborare prima e mi stavo allertando dell’object.

Quindi controlla. 1. l’avviso dovrebbe contenere una stringa. 2. Se ottieni arrayList o qualsiasi altro object decodificalo.

Ti auguro il meglio!