Tengo un objeto javascript que se ha analizado utilizando JSON JSON.parse
. Ahora quiero imprimir el objeto para poder depurarlo (algo funciona mal con la función). Cuando hago lo siguiente ...
for (property in obj) {
output += property + ': ' + obj[property]+'; ';
}
console.log(output);
Obtengo varios [Object Object] en la lista. Me pregunto cómo imprimiría esto para ver el contenido.
javascript
json
parsing
printing
Skizit
fuente
fuente
Respuestas:
La mayoría de las consolas de depuración admiten la visualización directa de objetos. Solo usa
Dependiendo de su depurador, lo más probable es que muestre el objeto en la consola como un árbol colapsado. Puede abrir el árbol e inspeccionar el objeto.
fuente
console.log("object: " + obj)
no muestra el objeto, sino que generará "object: [Object obj]".console.log("object: %O", obj)
(Chrome) oconsole.log("object: %o", obj)
(Firefox | Safari) le dará acceso a los detalles del objeto, vea mi respuesta a continuación.console.log("My object: ", obj)
¿Sabes qué significa JSON? Notación de objetos JavaScript . Tiene un formato bastante bueno para los objetos.
JSON.stringify(obj)
le devolverá una representación de cadena del objeto.fuente
intente en
console.dir()
lugar deconsole.log()
MDN dice que
console.dir()
es compatible con:fuente
console.dir()
también está disponible en FF8 +, Opera, Chrome y Safari: developer.mozilla.org/en-US/docs/Web/API/console.dirSi desea un JSON bonito y de varias líneas con sangría, puede usarlo
JSON.stringify
con su tercer argumento:Por ejemplo:
o
le dará el siguiente resultado:
En un navegador
console.log(obj)
funciona aún mejor, pero en una consola de shell (node.js) no lo hace.fuente
para imprimir el objeto analizado JSON simplemente escriba
console.log( JSON.stringify(data, null, " ") );
y obtendrá una salida muy clara
fuente
Usar formatos de cadena;
Chrome tiene especificadores de formato con lo siguiente;
%s
Formatea el valor como una cadena.%d
o%i
Formatea el valor como un entero.%f
Formatea el valor como un valor de coma flotante.%o
Formatea el valor como un elemento DOM expandible (como en el panel Elementos).%O
Formatea el valor como un objeto JavaScript expandible.%c
Formatea la cadena de salida de acuerdo con los estilos CSS que proporcione.Firefox también tiene Substitions de cadena que tienen opciones similares.
%o
Emite un hipervínculo a un objeto JavaScript. Al hacer clic en el enlace, se abre un inspector.%d
o%i
Emite un entero. El formato aún no es compatible.%s
Emite una cadena.%f
Emite un valor de punto flotante. El formato aún no es compatible.Safari tiene formateadores de estilo printf
%d
o%i
entero%[0.N]f
Valor de coma flotante con N dígitos de precisión%o
Objeto%s
Cuerdafuente
Agradable y simple:
fuente
Solo usa
y obtendrás esto en la consola de Chrome:
fuente
Función simple para alertar el contenido de un objeto o una matriz.
Llame a esta función con una matriz o cadena o un objeto que alerta los contenidos.
Función
Uso
fuente
El siguiente código mostrará datos completos de json en el cuadro de alerta
fuente
Si desea depurar, ¿por qué no utilizar la depuración de la consola?
fuente
Si está trabajando en js en un servidor, solo un poco más de gimnasia es muy útil ... Aquí está mi ppos (pretty-print-on-server):
que hace un gran trabajo al crear algo que realmente puedo leer cuando escribo el código del servidor.
fuente
No sé cómo nunca se hizo oficialmente, pero agregué mi propio
json
método paraconsole
objetar para imprimir registros en cadena:Muchas veces es necesario ver una versión en cadena de un Objeto porque imprimirlo como está (Objeto sin procesar) imprimirá una versión "en vivo" del objeto que se mutará a medida que el programa progresa, y no reflejará el estado del objeto en el punto de tiempo registrado, por ejemplo:
fuente