5

我有一个 json 文件。如果我在其上运行 clang-format,它会将其格式化为代码(丑陋)。

{
  "name" : "My great app",
           "description" : "It's really cool.",
                           "version" : "0.0.1"
}

如果我将 'foo = ' 放在文件的开头,那就太好了,但它不再是 json 了。

foo = {
  "name" : "My great app",
  "description" : "It's really cool.",
  "version" : "0.0.1"
}

如何获得 clang-format 以格式化 json 文件中的裸对象,如第二个示例所示?

4

4 回答 4

2

我喜欢使用的另一个程序是jq。它非常易于使用,文档也很棒。例如,对于简单的重新格式化,您可以这样做:

jq . test.json
于 2016-04-21T20:45:01.153 回答
2

我一直在努力让这个被接受,https://reviews.llvm.org/D93528,这可以通过在文件前面添加一个隐藏的“x =”来完成你的建议,然后在使用替换格式化后删除它机制。

在此之前,我认为您可以使用 clang-apply-replacements 做类似的事情

于 2021-06-22T07:36:28.013 回答
1

就我个人而言,我会使用 python,使用json's package pretty printer:

cat mydata.json | python -mjson.tool

如果您不喜欢默认设置:

cat mydata.json | python -c 'import json, sys; print(json.dumps(json.load(sys.stdin), indent=4, sort_keys=True))'

否则,我没有clang-format安装,为了漂亮的打印,我宁愿使用现有的工具。

注意:您也可以在完整文件选择中vim使用==普通命令☺</p>

于 2016-03-08T00:24:00.057 回答
0

如果您json_pp的系统上有,您还可以执行以下操作:

cat test.json | json_pp
于 2017-06-20T05:34:53.787 回答