Записать содержимое json в формате json в новый файл в Node js

/**
 * Tests image load.
 * @param {String} url
 * @returns {Promise}
 */
function testImageUrl(url) {
  return new Promise(function(resolve, reject) {
    var image = new Image();
    image.addEventListener('load', resolve);
    image.addEventListener('error', reject);
    image.src = url;
  });
}

return testImageUrl(imageUrl).then(function imageLoaded(e) {
  return imageUrl;
})
.catch(function imageFailed(e) {
  return defaultImageUrl;
});
-1
задан newuser 15 January 2019 в 23:20
поделиться

2 ответа

Когда у вас есть объект, вы можете указать функцию-заменитель для разделения каждой пары ключ-значение с помощью новой строки, затем использовать регулярное выражение для обрезания начальных пробелов, а затем использовать другое регулярное выражение для вставки пробела перед [112 ] пары ключ-значение. Затем просто запишите отформатированную строку в файл:

const obj = {"a":"1", "b":"2"};
const stringToWrite = JSON.stringify(obj, null, ' ')
  // Trim leading spaces:
  .replace(/^ +/gm, '')
  // Add a space after every key, before the `:`:
  .replace(/: "(?:[^"]+|\\")*",?$/gm, ' [110]amp;');
console.log(stringToWrite);

Хотя вы можете найти начальные пробелы более читабельными: [ 119]

const obj = {"a":"1", "b":"2"};
const stringToWrite = JSON.stringify(obj, null, '  ')
  // Add a space after every key, before the `:`:
  .replace(/: "(?:[^"]+|\\")*",?$/gm, ' [111]amp;');
console.log(stringToWrite);

0
ответ дан CertainPerformance 15 January 2019 в 23:20
поделиться

JSON.stringify, имеет два необязательных параметра, первый из которых является функцией заменителя, а второй (что вам нужно) предназначен для пробелов.

const obj = {"a":"1", "b":"2"}
console.log(JSON.stringify(obj, null, 2))

Это даст вам:

{
  "a": "1",
  "b": "2"
}
0
ответ дан Mike Zinn 15 January 2019 в 23:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: