[更新:这个问题后8小时被张贴,JSON bundle的作者被通报的问题,他固定它。]
我有一个文件application.json
以下JSON数据,在这个帖子的末尾表示,我已经使用的TextMate与JSON bundle,Emacs的,BBEdit中,和崇高的文本2正确缩进,但一切似乎就像他们不能。
无论TextMate的和崇高的文本2坚持认为,第一{
不应该被缩进,而第一个主要问题是为"child": {
右括号。无论TextMate的和崇高的文本2拒绝对准}
"child": {
左侧下。 Emacs的保持上越走越缩进每一行,并BBEdit中似乎并未有根本的重新排版功能(会这样?)。
有没有办法正确缩进文件,或者是TextMate的和崇高的文本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
}
}
]
我只是纠正了这个问题捆绑,为用户2.0捆绑应与校正在24小时内更新。
我found的BBEdit的一个解决方案是容易的,效果很好。
把下面的脚本
~/Library/Application Support/BBEdit/Text Filters/FormatJSON.sh
#!/bin/bash
python -m json.tool
我和那对单行3612683个字符的JSON文件测试这一点。 BBEdit中打开此文件,并重新格式化,而不显示SPOD。
据http://jsonprettyprint.com/ TextMate的卓异都没有做正确的事。
你用什么版本的Emacs的?
随着24.2.1,你的JSON团块完全缩进没有js-mode
问题(EMAC的默认JavaScript的主要模式)。
如果你做任何显著JavaScript开发,我建议检查出JS2模式qazxsw POI,果然Emacs的成为一个伟大的JS IDE。
https://github.com/mooz/js2-mode缩进第一Sublime Pretty JSON好。这是我得到:
{
安装
在崇高的文本2:优先=>包控制=>安装包=> “漂亮的Json”=>重启崇高=>选择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
}
}
]
,但我使用Python文件做JSON格式。
退出https://stackoverflow.com/a/19429447/2987755应用程序,如果它是开放的,
把下面的脚本bbedit
pretty-json.py
路径
~/Library/Application\ Support/BBEdit/Text\ Filters/
使用上面的脚本,如果你面对的格式错误的任何问题,脚本将在新文件中添加错误并不会改变原来的JSON。
参考:#!/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())
欲了解更多信息:请参阅https://gist.github.com/brokaw/95ade1358954cd97d0f2c8e992e14b08
注:以上过滤器将是缓慢的尺寸为40MB〜的文件,
为了更快的JSON格式,安装this
jq
在同一添加brew install jq
文件与上述文件的位置,重新启动的BBEdit。
fast-json-pretty.sh