我有一个应用程序,它时不时地将 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 方法时是否有可以调用的技巧?如果没有,任何其他建议将不胜感激。
您可以检查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));