gpt4 book ai didi

javascript - 我想在 JSON.stringify() 之后播放 htmlDecode

转载 作者:行者123 更新时间:2023-11-27 22:53:40 29 4
gpt4 key购买 nike

我想将值中包含引号的字符串解析为 JSON。

JSON.stringify()的字符串在htmlDecode()之后,';转换为",JSON.parse()时出错。

new DOMParser().parseFromString(input, "text/html");在此过程中除了“quot;”还能执行吗

或者有别的办法吗?

  <script>
const str = "&lt ;h3&gt ;&amp ;&amp ;&amp ;&quot ;&quot ;xx;;&lt ;/h3&gt ; &lt ;h2&gt ;";
const obj = { "test1": "&lt ;h3&gt ;&amp ;&amp ;&amp ;&quot ;&quot ;xx;;&l t;/h3&gt ; &lt ;h2&gt ; ", "test2": "help" };

function htmlDecode(input) {
var doc = new DOMParser().parseFromString(input, "text/html");
return doc.documentElement.textContent;
}

console.log(htmlDecode(str)) // <h3>&&&""xx;;</h3> <h2>
console.log(htmlDecode(JSON.stringify(obj))) // {"test1":"<h3>&&&""xx;;</h3> <h2> ","test2":"help"}
console.log(JSON.parse(htmlDecode(JSON.stringify(obj)))) // VM49:1 Uncaught SyntaxError: Unexpected string in JSON at position 18 at JSON.parse (<anonymous>)
</script>
</body>

如果字符串不包含qout; JSON 解析工作正常。

const quotIsNotObj = { "test1": "&lt ;h3&gt ;&amp ;&amp ;&amp ;xx;;&lt ;/h3&gt ; &lt ;h2&gt ; ", "test2": "help" };

console.log(JSON.parse(htmlDecode(JSON.stringify(successObj)))) // {"test1":"<h3>&&&xx;;</h3> <h2> ","test2":"help"}

最佳答案

您可以转义包含在对象中的字符串。这将解析为 JSON。

const str = "&lt;h3&gt;&amp;&amp;&amp;&quot;&quot;xx;;&lt;/h3&gt; &lt;h2&gt;";
const obj = { 'test1': '&lt;h3&gt;&amp;&amp;&amp;&quot;&quot;xx;;&lt;/h3&gt; &lt;h2&gt; ', 'test2': 'help'};


console.log(htmlDecode(str)) // <h3>&&&""xx;;</h3> <h2>
console.log(htmlDecode(JSON.stringify(obj))) // {"test1":"<h3>&&&""xx;;</h3> <h2> ","test2":"help"}

//Creating New Object With Escaped String
var newObj={};
Object.keys(obj).forEach(function(key){
var newVal=escapeString(htmlDecode(obj[key]));
newObj[key]=newVal;
});
console.log(newObj);



function htmlDecode(input) {
var doc = new DOMParser().parseFromString(input, "text/html");
return doc.documentElement.textContent;
}

//To Escape Characters like Quote
function escapeString(jsonStr){
return jsonStr.replace(/\\n/g, "\\n")
.replace(/\\'/g, "\\'")
.replace(/\\"/g, '\\"')
.replace(/\\&/g, "\\&")
.replace(/\\r/g, "\\r")
.replace(/\\t/g, "\\t")
.replace(/\\b/g, "\\b")
.replace(/\\f/g, "\\f");
}

关于javascript - 我想在 JSON.stringify() 之后播放 htmlDecode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57583772/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com