将 JSON 数组保存到每个数组元素一个文本记录中

问题描述 投票:0回答:1

我有一个应用程序,它时不时地将 JSON 数组保存到文本文件中。 JSON 数组的所有元素都显示相同的结构。

作为示例,请考虑以下 JSON 数组:

[{"A":1,"B":2},{"A":11,"B":22},{"A":111,"B":222}]

需要将其保存到文件中,如下所示:

[{"A":1,"B":2} , 
{"A":11,"B":22} , 
{"A":111,"B":222}]

意思是,数组中的每个 JSON 元素在文本文件中都有一条记录。

原因是这些 JSON 数组可能包含数百个甚至数千个元素,我希望保持这些文件对人类可读。

使用标准 JSON.stringify 方法时是否有可以调用的技巧?如果没有,任何其他建议将不胜感激。

javascript json stringify
1个回答
0
投票

您可以检查stringified的当前值是否是一个数组,如果是,则修改stringification过程以在每个元素后面添加换行符。

演示:

const jsonArray = [{"A":1,"B":2},{"A":11,"B":22},{"A":111,"B":222}];

const stringifyWithLineBreaks = (obj, indent = 2) => {
  return JSON.stringify(obj, (key, value) => {
    if (Array.isArray(value)) {
      return '[' + value.map(item => '\n' + ' '.repeat(indent) + JSON.stringify(item)).join(',') + '\n]';
    }
    return value;
  }, indent);
};

const jsonString = stringifyWithLineBreaks(jsonArray);

console.log(jsonString);
//actual data
console.log(JSON.parse(jsonString));

© www.soinside.com 2019 - 2024. All rights reserved.