2016-12-13 94 views
0

我有一些需要进行美化的序列化JSON数据。所以基本上我想显示innerHTML没有更新一些Pre标签

{"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("[email protected][i].TriggerTime.Ticks").innerHTML; 
 
    var y = JSON.parse(x); 
 
    var z = JSON.stringify(y, null, 2); 
 
    document.getElementById("[email protected][i].TriggerTime.Ticks").innerHTML = z;

的问题是,预先标记的innerHTML时得到更新,但不会在DOM渲染得到。奇怪的是,它适用于某些JSON数据,但不适用于其他人。

我在做什么错?

+0

JSON它的工作是什么,什么不是工作?如果一致,那么可能有一个无效的字符。 – krillgar

+0

'var prettyJson = JObject.Parse(json).ToString(Newtonsoft.Json.Formatting.Indented);' –

回答

0

当你把字符串化JSON一个pre标记里面,我相信你可以尝试的innerText而不是innerHTML的(因为您不添加的后裔,但预格式化文本)

0

想出了一个简单的方法来做到这一点使用剃刀。感谢您的建议。

Newtonsoft.Json.JsonConvert.SerializeObject(Newtonsoft.Json.JsonConvert.DeserializeObject(Model[i].SerializedEventData), Newtonsoft.Json.Formatting.Indented);