我已经获得了一些我需要美化的序列化JSON数据。所以基本上我想要显示
{"AuthorizationId":123245,"AuthorizationIdSpecified":true,"ClientAuthorizationId":null,"Date":"2016-12-07T15:22:29+00:00","Message":"","PersonId":"345543654645","Status":0}
作为
{
"AuthorizationId": 123245,
"AuthorizationIdSpecified": true,
"ClientAuthorizationId": null,
"Date": "2016-12-07T15:22:29+00:00",
"Message": "",
"PersonId": "345543654645",
"Status": 0
}
hiddenData_ *是最初呈现JSON的隐藏范围。 response-container_ *是一个显示结构化JSON的预标记。有一个Razor循环遍历模型。
脚本是
var x = document.getElementById("hiddenData_@Model[i].TriggerTime.Ticks").innerHTML;
var y = JSON.parse(x);
var z = JSON.stringify(y, null, 2);
document.getElementById("response-container_@Model[i].TriggerTime.Ticks").innerHTML = z;

问题是pre标签的innerHTML正在更新,但是没有在DOM中呈现。奇怪的是它适用于某些JSON数据但不适用于其他数据。
我做错了什么?
答案 0 :(得分:0)
当你将字符串化的JSON放在Pre标签中时,我相信你可以尝试使用innerText而不是innerHtml(因为你没有添加后代,而是预先格式化的文本)
答案 1 :(得分:0)
使用Razor找出一种更简单的方法。感谢您的建议。
Newtonsoft.Json.JsonConvert.SerializeObject(Newtonsoft.Json.JsonConvert.DeserializeObject(Model[i].SerializedEventData), Newtonsoft.Json.Formatting.Indented);