Windows批处理 - 每个脚本的漂亮打印JSON

use*_*542 5 scripting command-line json batch-file

我在服务器上有多个JSON文件,它们只能运行批处理脚本或命令行工具.所有JSON文件都没有正确格式化,这意味着行的开头没有制表符空格.

有没有办法,编写批处理脚本或运行命令行工具来格式化文件,所以它们再次正常?

zb2*_*226 9

你肯定需要一个外部工具.我正在使用命令行JSON处理器jq - 只是传递一个空的过滤器,它将打印出它作为输入给出的JSON.

例:

ECHO "{ \"att1\": 1, \"att2\": 2 }" | jq ""
Run Code Online (Sandbox Code Playgroud)

输出:

{
  "att1": 1,
  "att2": 2
}
Run Code Online (Sandbox Code Playgroud)

  • 在`jq`文档中推荐使用过滤器`.`,它也会隐式地进行美化。在Windows命令行中更容易提供此选项。 (2认同)

dna*_*ion 7

如果您安装了 python,那么超快速的方法是在命令提示符或 powershell 中键入以下内容:

type dirty.json | python -m json.tool > pretty.json
Run Code Online (Sandbox Code Playgroud)

其中dirty.json是缩小的或不可读的json,而pretty.json是漂亮的。你甚至可以把它放在一个批处理文件中,通过传递一个参数来运行它。它的处理速度非常快。

说明: type 正在将文件内容写入控制台,但它是通过管道传输的,因此它被发送到 python 的模块 json.tool,然后“>”将输出写入名为“pretty.json”的文件。尝试不使用> pretty.json以查看控制台中的输出。

  • 当“jq”不可用但“python”可用时,这个答案有其优点。 (2认同)