Ace-Editor JSON 自动格式/缩进
Posted
技术标签:
【中文标题】Ace-Editor JSON 自动格式/缩进【英文标题】:Ace-Editor JSON auto format/indent 【发布时间】:2014-02-06 12:19:41 【问题描述】:我刚刚开始使用 Ace Editor。根据doc “编辑器支持纯文本模式。所有其他语言模式都可以作为单独的模块使用,按需加载...” javascript 模式设置为editor.getSession().setMode("ace/mode/javascript");
这仅适用于高亮语法。
就我而言,我正在使用 JSON - editor.getSession().setMode("ace/mode/json")
我想要实现的是
显示格式正确的 JSON 响应问题是
Ace Editor 似乎无法处理 JS 对象或 JSONeditor.setValue()
必须转成字符串
问题
如何在放置的字符串上设置自动格式/缩进<div id="editor"></div>
?
HTML:
<div id="editor"></div>
SCRIPT: jsonDoc
是来自服务器的数据
$scope.getData = function (jsonDoc)
var editor = ace.edit("editor");
editor.getSession().setMode("ace/mode/json");
editor.setTheme("ace/theme/twilight");
editor.getSession().setTabSize(2);
editor.getSession().setUseWrapMode(true);
editor.setValue(JSON.stringify(jsonDoc));
;
【问题讨论】:
【参考方案1】:要格式化您的 JSON 字符串,您可以使用 JSON.stringify
的附加参数。尝试类似
editor.setValue(JSON.stringify(jsonDoc, null, '\t'));
第三个参数用于每个级别的缩进。 (在不同的实现中可能会有所不同)。有关示例,请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify。
您还可以从 ace.js 文件切换显示选项。
【讨论】:
其他语言怎么做?以上是关于Ace-Editor JSON 自动格式/缩进的主要内容,如果未能解决你的问题,请参考以下文章
使用 AutoHotkey 解析、生成和美化/格式化 Json?
VSCode 自定义代码格式和语言自动缩进(Django-Template 缩进)