JavaScript中处理ASP.NET Core返回的包含HTML实体编码(如")的JSON字符串
var checkGroupMember = "@(Model.Request.Form["CheckgroupMember"])";
以上变量获取到的示例数据:
[{"Uuid":586427188244485,"PersonName":"2号钥匙柜","UserName":"key2"},{"Uuid":586426824880133,"PersonName":"1号钥匙柜","UserName":"key1"}]
可以通过以下步骤转换:
- HTML解码:使用
DOMParser或textarea元素解码HTML实体 - JSON解析:将解码后的字符串转为JavaScript对象
// 方法1:使用DOMParser(现代浏览器推荐) function htmlDecode(input) { const doc = new DOMParser().parseFromString(input, "text/html"); return doc.documentElement.textContent; } // 方法2:使用textarea元素(兼容旧浏览器) function htmlDecodeLegacy(input) { const textarea = document.createElement("textarea"); textarea.innerHTML = input; return textarea.value; } // 使用示例 const encodedJson = '[{"Uuid":586427188244485,"PersonName":"2号钥匙柜","UserName":"key2"},{"Uuid":586426824880133,"PersonName":"1号钥匙柜","UserName":"key1"}]'; const decodedJson = htmlDecode(encodedJson); // 或htmlDecodeLegacy(encodedJson) const jsonObj = JSON.parse(decodedJson); console.log(jsonObj); // 输出解析后的对象
这段代码提供了两种HTML解码方式,解码后可正常使用JSON.parse()转为JS对象。现代浏览器推荐使用DOMParser方式,兼容性更好。
浙公网安备 33010602011771号