Ace-Editor JSON自动格式/缩进

时间:2014-01-17 08:40:16

标签: javascript html json ace-editor

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

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

我想要实现的是

  • 显示格式正确的JSON响应

问题

  • Ace Editor似乎无法处理JS对象或JSON editor.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 个答案:

答案 0 :(得分:41)

要格式化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文件切换显示选项。