Я использую Node.js для POST JSON в PostBin, но данные формируются неправильно (как вы можете видеть здесь: http://www.postbin.org/1cpndqw ).
Это код, который я использую для 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();
javascript
json
node.js
webhooks
Дональд
источник
источник
{"a":1,"b":2,"c":3}
ты исправил свою проблему? Похоже, вы правильно разместили данные.Ответы:
Ну, в первую очередь потому, что JSON не волнует, как он отформатирован, а вы сами не форматируете. Что вам нужно, это javascript prettyprinter, если вам не все равно, но первый вопрос: «Почему вас это волнует?»
Вот симпатичный печатный код из рецептов Javascript.
На самом деле здесь, на SO , есть масса разных примеров .
ОБНОВИТЬ
Хорошо, теперь он делает то, что вы хотите, давайте спросим, правильно ли вы делаете. Как указали несколько человек, вам не нужно передавать эти дополнительные символы новой строки и табуляции или пробелы; затраты на эффективность невелики, вероятно, около 2–5 процентов, но никогда не знаешь, когда может понадобиться пара процентов.
С другой стороны, я полностью согласен с тем, что гораздо удобнее читать вывод JSON как красиво напечатанный текст. Но есть и другое решение - вы, вероятно, все еще используете браузер для просмотра этих результатов, поэтому вместо того, чтобы распечатывать их для передачи, используйте симпатичный принтер на стороне клиента. Я использую JSONView для Chrome и JSONView в Firefox. Многие отладчики также могут распечатать результаты JSON для вас.
источник
Используйте
JSON.stringify(object, null, 4)
где4
- количество пробелов, используемых в качестве единицы отступа. Вы также можете использовать,"\t"
если хотите, вкладки. Фактически это часть спецификации ECMAScript 5 и задокументирована на MDN .источник
Я использовал двухэтапный процесс, который, как мне показалось, работал:
var output = JSON.parse(insert_json_here); var print_to_file = JSON.stringify(output, null, "\t")
источник
Вам следует проверить underscore-cli - это инструмент командной строки для проверки и обработки данных JSON.
источник