在从@model提取的MVC视图中的变量中使用javascript\r\n\

在从@model提取的MVC视图中的变量中使用javascript\r\n\,javascript,json,asp.net-mvc,cloud9-ide,Javascript,Json,Asp.net Mvc,Cloud9 Ide,我试图为Ace(Ajax.org Cloud9 Editor)正确设置格式,因此我在MVC视图中通过从@Model提取的Json进行解析,如下所示: var model = JSON.stringify(@Html.Raw(Json.Encode(Model))); var comma = model.replace(/,/g, ",\r\n"); var curlyBracket = comma.replace(/{/g, "{\r\n"); var colonCurlyBracket =

我试图为Ace(Ajax.org Cloud9 Editor)正确设置格式,因此我在MVC视图中通过从@Model提取的Json进行解析,如下所示:

var model = JSON.stringify(@Html.Raw(Json.Encode(Model)));

var comma = model.replace(/,/g, ",\r\n");
var curlyBracket = comma.replace(/{/g, "{\r\n");
var colonCurlyBracket = bracket.replace(/:{/g, ':\r\n\{');
var bracketCurlyBracket = colonCurlyBracket.replace(/:\[{/g, ':\r\n\[{');

editor.setValue(bracketCurlyBracket, -1);
问题是,这不会做任何缩进来保持格式正确,它只会放回车和新行。我尝试使用:

var comma = model.replace(/,/g, ",\r\n\"); 
var curlyBracket = comma.replace(/{/g, "{\r\n\"); 
var colonCurlyBracket = bracket.replace(/:{/g, ':\r\n\\{'); 
var bracketCurlyBracket = colonCurlyBracket.replace(/:\[{/g, ':\r\n\\[{');

但是额外的“\”在前两行上给了我错误“Unterminated string constant”,在后两行上它只是在编辑器中添加了一个“\”。我需要这些行继续,以便缩进和格式化工作。我该怎么做?

感谢詹姆斯,以下是答案:

JSON.stringify的第三个参数完成了正确格式化的任务,因此应该如下所示:

var model = JSON.stringify(@Html.Raw(Json.Encode(Model)), null, ' ');
editor.setValue(model, -1);
第三个参数(“”)使用空格,空格的数量决定缩进的数量(即3个空格=3个缩进):


希望这对其他人有所帮助。

您是否正在尝试漂亮地打印json?不需要。只需要格式看起来正确,以便更易于阅读。请查看JSON.stringify的第三个参数,这可能会对您有所帮助。
"filters": [
            {
                "id": "LastName",
                "label": "LastName",
                "type": "string",
                "operators": [
                    "equal",
                    "not_equal",
                    "begins_with",
                    "not_begins_with",
                    "contains",
                    "not_contains",
                    "ends_with",
                    "not_ends_with"
                ]
            }
           ]