悟生慧

 

JavaScript中处理ASP.NET Core返回的包含HTML实体编码(如")的JSON字符串

var checkGroupMember = "@(Model.Request.Form["CheckgroupMember"])"; 

以上变量获取到的示例数据:

               [{"Uuid":586427188244485,"PersonName":"2号钥匙柜","UserName":"key2"},{"Uuid":586426824880133,"PersonName":"1号钥匙柜","UserName":"key1"}]

可以通过以下步骤转换:

  1. ‌HTML解码‌:使用DOMParsertextarea元素解码HTML实体
  2. ‌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方式,兼容性更好。

posted on 2025-06-24 09:12  悟生慧  阅读(25)  评论(0)    收藏  举报

导航