6

Как можно красиво отформатировать JSON с помощью node.js?

14

Проблема, с которой я столкнулся, вроде бы решена, но я не могу найти подходящего решения.

У меня есть JSON-файл, который я читаю, изменяю ключ и записываю обновленный JSON обратно в тот же файл. Все работает, но я теряю форматирование JSON. Вместо:

{
  name: 'test',
  version: '1.0'
}

Я получаю:

{name: 'test', version: '1.1'}

Существует ли способ в Node.js записать хорошо отформатированный JSON в файл?

3 ответ(ов)

2

Конечно! Вот перевод на русский язык в стиле ответа на StackOverflow:


Это может оказаться полезным... Я люблю примеры кода! 😃

var fs = require('fs');

var myData = {
  name: 'test',
  version: '1.0'
}

var outputFilename = '/tmp/my.json';

fs.writeFile(outputFilename, JSON.stringify(myData, null, 4), function(err) {
    if (err) {
        console.log(err);
    } else {
        console.log("JSON сохранен в " + outputFilename);
    }
}); 

В этом примере кода используется модуль fs (файловая система) для записи данных в файл в формате JSON. Мы создаем объект myData, содержащий имя и версию, затем конвертируем его в строку JSON с помощью JSON.stringify(). Параметры null и 4 в JSON.stringify() обеспечивают удобный форматирование с отступами в 4 пробела.

Функция fs.writeFile() принимает имя файла, данные для записи и коллбэк, который обрабатывает возможные ошибки или подтверждает успешное сохранение. Если запись успешна, в консоль выводится сообщение о том, что JSON успешно сохранен.

Если у вас есть вопросы или нужно больше информации, не стесняйтесь спрашивать!

0

Если вы не хотите сохранять объект, а просто хотите просмотреть его для отладки, вы можете использовать следующий код:

console.log(JSON.stringify(object, null, "  "));

Здесь вы можете изменить третий параметр, чтобы настроить отступы по своему усмотрению.

0

Я знаю, что это старый вопрос, но, возможно, это вам поможет! 😀

JSON строка

var jsonStr = '{ "bool": true, "number": 123, "string": "foo bar" }';

Форматирование JSON (Pretty Print)

JSON.stringify(JSON.parse(jsonStr), null, 2);

Сжатие JSON (Minify)

JSON.stringify(JSON.parse(jsonStr));

Надеюсь, это будет полезно!

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь