nop*_*ole 6 emacs textmate json bbedit sublimetext2
[ 更新:发布此问题8小时后,JSON包的作者收到了有关该问题的通知,并修复了该问题.]
我在一个文件中有以下JSON数据application.json,显示在本文末尾,我使用TextMate和JSON包,Emacs,BBEdit和Sublime Text 2来正确缩进它,但似乎他们都不能.
TextMate和Sublime Text 2都坚持第一个{不应该缩进,第一个主要问题是结束括号"child": {.TextMate和Sublime Text 2都拒绝对齐}左下方"child": {.Emacs对每一行继续进一步缩进,而且BBEdit似乎根本没有重新缩进功能(这可能是吗?).
有没有办法正确缩进文件,或者TextMate和Sublime Text 2是否为JSON数据做正确的事情?
[
{
"settings": [ "master" ],
"appPort": "8666",
"specs": {
"frame" : {
"type" : "HTMLFrameMojit",
"config": {
"deploy": true,
"child": {
"type" : "HelloWorldMojit"
},
"assets": {
"top": {
"css": [
"/static/HelloWorldMojit/assets/index.css"
]
}
}
}
}
}
},
{
"settings": [ "environment:development" ],
"staticHandling": {
"forceUpdate": true
}
}
]
Run Code Online (Sandbox Code Playgroud)
Mar*_*ark 13
我找到了一个简单易用的BBEdit解决方案.
将以下脚本放入
~/Library/Application Support/BBEdit/Text Filters/FormatJSON.sh
#!/bin/bash
python -m json.tool
Run Code Online (Sandbox Code Playgroud)
我用一个JSON文件对它进行了测试,该文件在一行上有3,612,683个字符.BBEdit打开了这个文件并重新格式化而没有显示SPOD.
解决方案1:使用Python
这个答案与这个答案类似,只是我用的python file是 JSON 格式。
bbedit如果应用程序已打开,则退出该应用程序,~/Library/Application\ Support/BBEdit/Text\ Filters/放入路径中 #!/usr/bin/env python
# You can change above she-bang line depending on your Mac configuration
import sys
import json
def main():
input = sys.stdin.read()
try:
obj = json.loads(input)
except Exception as e:
print input + "\n\nERROR: " + str(e)
return 1
print(json.dumps(obj, indent=2))
return 0
if __name__ == '__main__':
sys.exit(main())
Run Code Online (Sandbox Code Playgroud)
要进行测试,请在 BBEdit 中打开一个 JSON 文件。
选择Text--> Apply Text Filter-->pretty-json.py
如果您遇到格式错误等任何问题,则上述脚本将在新文件中添加错误,并且不会更改原始 JSON。这个答案
不是这样的
参考:https://gist.github.com/brokaw/95ade1358954cd97d0f2c8e992e14b08
欲了解更多信息:请参阅此
上面的过滤器对于较小的 JSON 文件效果很好,但如果 JSON 文件很大(~ 40MB),那么格式化会很慢。
要解决此问题,请使用以下解决方案
解决方案 2:使用jq
为了更快的 json 格式化,
brew install jqjq在终端中执行,或者需要完整路径,添加以下文件中的任意一个来代替jqfast-json-pretty.sh文件~/Library/Application\ Support/BBEdit/Text\ Filters/#!/bin/bash
jq
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8274 次 |
| 最近记录: |