clang-format一个json文件

时间:2016-03-08 00:03:13

标签: javascript json clang-format

我有一个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格式来格式化json文件中的裸对象?

4 个答案:

答案 0 :(得分:1)

我个人使用python,使用json的包漂亮打印机:

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,为了漂亮的打印,我宁愿使用现有的工具。

N.B。:您也可以在vim内进行,并在完整文件选择中使用==普通命令☺

答案 1 :(得分:1)

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

jq . test.json

答案 2 :(得分:1)

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

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

答案 3 :(得分:0)

如果您的系统上有json_pp,您也可以这样做:

cat test.json | json_pp