Pregunta ¿Cómo puedo mostrar un objeto de JavaScript?


¿Cómo se muestra el contenido de un objeto JavaScript en un formato de cadena como cuando alert ¿una variable?

La misma forma formateada en la que quiero mostrar un objeto.


1256
2018-06-05 19:01


origen


Respuestas:


Con Firefox

Si desea imprimir el objeto para fines de depuración, le sugiero que lo instale Firebug para Firefox y usando el código:

console.log(obj)

Con Chrome

var obj = {prop1: 'prop1Value', prop2: 'prop2Value', child: {childProp1: 'childProp1Value'}}
console.log(obj)

mostrará

screenshot console chrome

Nota : debes solamente registrar el objeto. Por ejemplo, esto no funcionará:

console.log('My object : ' + obj)

750
2018-06-05 19:15



Usar nativo JSON.stringify método. Funciona con objetos anidados y todos los principales navegadores apoyo este método.

str = JSON.stringify(obj);
str = JSON.stringify(obj, null, 4); // (Optional) beautiful indented output.
console.log(str); // Logs output to dev tools console.
alert(str); // Displays output using window.alert()

Enlace a Referencia de la API de Mozilla y otros ejemplos.

obj = JSON.parse(str); // Reverses above operation (Just in case if needed.)

Use una costumbre JSON.stringify replacer si tu encuentra este error Javascript

"Uncaught TypeError: Converting circular structure to JSON"

1720
2017-11-27 17:52



var output = '';
for (var property in object) {
  output += property + ': ' + object[property]+'; ';
}
alert(output);

367
2018-06-05 19:18



console.dir(object):

Muestra una lista interactiva de las propiedades de un objeto JavaScript especificado. Esta lista le permite usar triángulos de revelación para examinar el contenido de los objetos secundarios.

Tenga en cuenta que console.dir() la función no es estándar. Ver Documentos web de MDN


95
2018-06-03 12:43



prueba esto :

console.log(JSON.stringify(obj))

Esto imprimirá la versión de stringify del objeto. Entonces, en lugar de [object] como resultado obtendrás el contenido del objeto.


66
2017-08-12 07:53



Bueno, Firefox (gracias a @Bojangles para información detallada) tiene Object.toSource() método que imprime objetos como JSON y function(){}.

Eso es suficiente para la mayoría de los propósitos de depuración, supongo.


64
2018-06-05 19:04



Si desea utilizar la alerta, para imprimir su objeto, puede hacer esto:

alert("myObject is " + myObject.toSource());

Debe imprimir cada propiedad y su valor correspondiente en formato de cadena.


51
2017-09-09 07:15



Función:

var print = function(o){
    var str='';

    for(var p in o){
        if(typeof o[p] == 'string'){
            str+= p + ': ' + o[p]+'; </br>';
        }else{
            str+= p + ': { </br>' + print(o[p]) + '}';
        }
    }

    return str;
}

Uso:

var myObject = {
    name: 'Wilson Page',
    contact: {
        email: 'wilson@hotmail.com',
        tel: '123456789'
    }  
}

$('body').append( print(myObject) );

Ejemplo:

http://jsfiddle.net/WilsonPage/6eqMn/


31
2017-11-16 14:37



En NodeJS puedes imprimir un objeto usando util.inspect(obj). Asegúrese de indicar la profundidad o solo tendrá una impresión superficial del objeto.


31
2017-07-15 06:35



Si desea ver los datos en formato de tabla, puede usar

console.table(obj);

La tabla se puede ordenar si hace clic en la columna de la tabla.

También puede seleccionar qué columnas mostrar:

console.table(obj, ['firstName', 'lastName']);

Puede encontrar más información sobre console.table aquí


27
2018-03-26 12:43



Como se dijo antes, la mejor y más sencilla forma que encontré fue

var getPrintObject=function(object)
{
    return JSON.stringify(object);
}

18
2017-10-08 13:57