在从@model提取的MVC视图中的变量中使用javascript\r\n\
我试图为Ace(Ajax.org Cloud9 Editor)正确设置格式,因此我在MVC视图中通过从@Model提取的Json进行解析,如下所示:在从@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 =
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"
]
}
]