如何在控制器返回的Javascript中格式化JSON字符串
我从控制器返回了JSON字符串,如下图所示 但我希望JSON字符串在每一行中都被格式化,如下图所示 到目前为止,我已经使用了以下方法,但不幸的是,如果有任何建议/支持,我将不胜感激如何在控制器返回的Javascript中格式化JSON字符串,javascript,json,model-view-controller,Javascript,Json,Model View Controller,我从控制器返回了JSON字符串,如下图所示 但我希望JSON字符串在每一行中都被格式化,如下图所示 到目前为止,我已经使用了以下方法,但不幸的是,如果有任何建议/支持,我将不胜感激 $.ajax ({ type: "GET", url: "/Transaction/showStuContact", da
$.ajax
({
type: "GET",
url: "/Transaction/showStuContact",
data: { "id": id },
dataType: "json",
success: function (data)
{
myJSONstring = JSON.stringify(data);
myJSONstring1 = myJSONstring.replace(/\\n/g, "")
.replace(/ /g, '')
.replace(/\\t+/g, "|")
.replace(/\\'/g, "")
.replace(/\\"/g, '')
.replace(/\\&/g, "")
.replace(/\\r/g, "")
.replace(/\\b/g, "")
.replace(/\\f/g, "");
alert(myJSONstring1);
}
});
是某些数据结构的字符串表示形式。它不需要很好地格式化。它的目的不是被人类读取,而是被传输或持久化,然后解析以从中恢复一个类似于用于生成它的数据结构。为此,最好是没有不必要的字符(如空格或新行)的长行
但是,如果您想生成一个人类可读的JSON,可以使用三个参数进行调用。当提供第三个参数时,JSON在多行上格式化,第三个参数告诉用于缩进内部块行(每个块相对于其父块)的空格字符数
const数据={
id:123,
名字:“约翰”,
姓氏:“Doe”,
地址:{
城市:“纽约市”,
街道:“任何街道”,
}
};
//用于传输、持久性和恢复
log(JSON.stringify(data));
//供人食用
log(JSON.stringify(data,null,3))
是某些数据结构的文本表示形式。JavaScript函数创建一个JSON。在JSON上进行字符串替换可能会破坏它,使其无效且不可解析。如果需要更改生成的值,请更改data
的属性,或使用data
生成不同的对象,并将此新对象编码为JSON并返回。知道如何使用replace或任何其他JS函数将逗号转换为换行符吗。JSON的格式并不重要,因为它的目的不是供人读取,而是传输或持久化,然后解析以恢复与创建它所用的数据结构类似的数据结构。对于传输和持久性,一条没有不必要的空白字符的长线是最好的。如果您需要很好地格式化它,请使用编辑器(现在大多数编程编辑器都知道如何很好地格式化几乎所有内容)。如果您从命令行使用JSON,它非常适合格式化和操作。您以这种方式生成的输出不再是JSON。如果您不需要JSON,那么就不要将数据编码为JSON。@这是有道理的。你还有什么要解释的吗。
$.ajax
({
type: "GET",
url: "/Transaction/showStuContact",
data: { "id": id },
dataType: "json",
success: function (data)
{
myJSONstring = JSON.stringify(data);
myJSONstring1 = myJSONstring.replace(/,/g, '\n');
//.replace(/ /g, '')
//.replace(/\\t+/g, "|")
// .replace(/\\'/g, "")
// .replace(/\\"/g, '')
// .replace(/\\&/g, "")
//.replace(/\\r/g, "")
//.replace(/\\b/g, "")
//.replace(/\\f/g, "");
//.replace
alert(myJSONstring1);