Ace-Editor JSON自动格式/缩进

Sim*_*ana 11 html javascript json ace-editor

我刚开始使用Ace Editor.根据文档 "编辑器支持纯文本模式.所有其他语言模式都可以作为单独的模块使用,按需加载......"这就是JavaScript模式的设置方式,editor.getSession().setMode("ace/mode/javascript");这仅适用于突出显示语法.

就我而言,我正在使用JSON - editor.getSession().setMode("ace/mode/json")

我想要实现的是

  • 显示格式良好的JSON响应

问题是

  • Ace Editor似乎无法处理JS对象,或者editor.setValue()它上面的JSON 必须转换为字符串

  • 如何在放置的字符串上设置自动格式/缩进 <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));
};
Run Code Online (Sandbox Code Playgroud)

Syj*_*jin 45

要格式化JSON字符串,可以使用其他参数JSON.stringify.尝试类似的东西

editor.setValue(JSON.stringify(jsonDoc, null, '\t'));
Run Code Online (Sandbox Code Playgroud)

第三个参数用于每个级别的缩进.(可能在不同的实现中有所不同).有关示例,请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify.

您还可以从ace.js文件切换显示选项.

  • 如何为其他语言做到这一点? (28认同)