javascript - Escribir JSON formateado en Node.js
webhooks (4)
Bueno, principalmente porque a JSON no le importa cómo está formateado, y usted no está formateando usted mismo. Lo que necesita es una impresora bonita de JavaScript, si le importa, pero la primera pregunta es "¿Por qué le importa?"
Aquí hay un código de prettyprinting de las recetas de JavaScript.
De hecho, hay muchos ejemplos diferentes here en SO.
ACTUALIZAR
De acuerdo, ahora que está haciendo lo que quieres, preguntémosle si estás haciendo lo correcto. Como han señalado varias personas, no es necesario que transmita esas nuevas líneas y pestañas adicionales, o espacios; el costo de la eficiencia es pequeño, probablemente cerca del 2-5 por ciento, pero nunca se sabe cuándo podría necesitar un dos por ciento.
Por otro lado, estoy completamente de acuerdo en que es mucho más conveniente poder leer la salida JSON como texto bastante impreso. Pero hay otra solución: probablemente sigas usando un navegador para ver estos resultados, así que en lugar de imprimirlos para la transmisión, utiliza una impresora bonita del lado del cliente. Uso JSONView para Chrome y JSONView en Firefox. Muchos depuradores también imprimirán muy bien los resultados de JSON para usted.
Estoy usando Node.js para POST JSON a PostBin, pero los datos están formateados erróneamente (como se puede ver aquí: http://www.postbin.org/1cpndqw ).
Este es el código que estoy usando para tesT:
var http = require(''http'');
var options = {
host: ''www.postbin.org'',
port: 80,
path: ''/1cpndqw'',
method: ''POST''
};
var req = http.request(options, function(res) {
console.log(''STATUS: '' + res.statusCode);
console.log(''HEADERS: '' + JSON.stringify(res.headers));
res.setEncoding(''utf8'');
res.on(''data'', function (chunk) {
console.log(''BODY: '' + chunk);
});
});
req.write(JSON.stringify({ a:1, b:2, c:3 }, null, 4));
req.end();
Debería verificar underscore-cli : es una herramienta de línea de comandos para inspeccionar y procesar datos JSON.
Usé un proceso de dos pasos que encontré para trabajar:
var output = JSON.parse(insert_json_here);
var print_to_file = JSON.stringify(output, null, "/t")
Use JSON.stringify(object, null, 4)
donde 4
es la cantidad de espacios para usar como unidad de sangría. También puede usar "/t"
si desea pestañas. Esto es en realidad parte de la especificación ECMAScript 5 , y está developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… .