我有一个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文件中的裸对象?
答案 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