You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将JSON输出文件格式化为指定示例样式?

问题需求

需要将JSON输出格式化为以下样式:数组内每个对象单独占一行,对象内部键值对在同一行,数组元素带有缩进。示例如下:

[
  {"keyA1": "value1", "keyA2": "value2", "KeyAN": "valueN"},
  {"keyB1": "value1", "keyB2": "value2", "KeyBN": "valueN"},
  {"keyC1": "value1", "keyC2": "value2", "KeyCN": "valueN"},
]

当前使用Deno的JSON.stringify(members, null, 1)写入文件,无法满足需求,需调整代码实现目标格式。现有代码片段:

const newAdmin = { 
    id: Math.floor(dateNow.getTime() / 1000), 
    firstName: firstName, 
    lastName: lastName, 
    birthDate: new Date(birthDate).toLocaleDateString(),
    registrationDay: dateNow.toLocaleDateString()
};
members.push(newAdmin);

await Deno.writeFile(membersFilePath!, encoder.encode(JSON.stringify(members, null, 1)));
解决方案

JSON.stringify的默认缩进逻辑会把对象内部的键值对也拆分成多行,没法直接生成目标格式。可以手动拼接出符合要求的JSON字符串,步骤如下:

  • 将数组里的每个对象单独转成无缩进的紧凑JSON字符串
  • 给每个对象字符串添加2个空格的缩进
  • 用,\n 作为分隔符拼接所有对象字符串
  • 最后包裹上数组的首尾括号并添加对应换行

替换原有写入文件的代码为:

// 构建自定义格式的JSON字符串
const formattedJson = `[
  ${members.map(item => JSON.stringify(item)).join(',\n  ')}
]`;

await Deno.writeFile(membersFilePath!, encoder.encode(formattedJson));

这样生成的JSON就完全匹配目标样式了。

内容的提问来源于stack exchange,提问作者Tinaira

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 14:20:25