在JavaScript中从Json数据中删除反斜杠

2021/01/28 08:11 · jquery ·  · 0评论

从JavaScript或jQuery中的JSON数据中删除反斜杠

var str = "{"data":"{\n \"taskNames\" : [\n \"01 Jan\",\n \"02 Jan\",\n \"03 Jan\",\n \"04 Jan\",\n \"05 Jan\",\n \"06 Jan\",\n \"07 Jan\",\n \"08 Jan\",\n \"09 Jan\",\n \"10 Jan\",\n \"11 Jan\",\n \"12 Jan\",\n \"13 Jan\",\n \"14 Jan\",\n \"15 Jan\",\n \"16 Jan\",\n \"17 Jan\",\n \"18 Jan\",\n \"19 Jan\",\n \"20 Jan\",\n \"21 Jan\",\n \"22 Jan\",\n \"23 Jan\",\n \"24 Jan\",\n \"25 Jan\",\n \"26 Jan\",\n \"27 Jan\"]}

var finalData = str.replace("\\", "");

但这对我不起作用。有什么帮助吗?

您的字符串无效,但是假设它是有效的,则必须执行以下操作:

var finalData = str.replace(/\\/g, "");

当您想用替换所有出现时.replace,第一个参数必须是一个正则表达式,如果您提供一个字符串,则仅第一个出现将被替换,这就是您的替换无法正常工作的原因。

干杯

tl; dr:您不必删除斜线,而已嵌套JSON,因此必须将JSON解码两次:DEMO(请注意,在示例中,我使用了双斜线,因为JSON位于JS字符串文字内)。


我假设您的实际JSON看起来像

{"data":"{\n \"taskNames\" : [\n \"01 Jan\",\n \"02 Jan\",\n \"03 Jan\",\n \"04 Jan\",\n \"05 Jan\",\n \"06 Jan\",\n \"07 Jan\",\n \"08 Jan\",\n \"09 Jan\",\n \"10 Jan\",\n \"11 Jan\",\n \"12 Jan\",\n \"13 Jan\",\n \"14 Jan\",\n \"15 Jan\",\n \"16 Jan\",\n \"17 Jan\",\n \"18 Jan\",\n \"19 Jan\",\n \"20 Jan\",\n \"21 Jan\",\n \"22 Jan\",\n \"23 Jan\",\n \"24 Jan\",\n \"25 Jan\",\n \"26 Jan\",\n \"27 Jan\"]}"}

即您有一个带一个键的顶级对象data该键的值是一个包含JSON本身的字符串。这通常是因为服务器端代码未正确创建JSON。这就是为什么您看到\"字符串内部。这使解析器知道"应按字面意义对待,并且不会终止字符串。

因此,您可以修复服务器端代码,以免对数据进行双重编码,或者必须对JSON进行两次解码,例如

var data = JSON.parse(JSON.parse(json).data));

尝试这个

var finalData = str.replace(/\\/g, '');

您需要先对JSON进行反序列化一次,然后再将其作为响应返回。请参考下面的代码。这对我有用:

JavaScriptSerializer jss = new JavaScriptSerializer();
Object finalData = jss.DeserializeObject(str);

在React Native中,这对我有用

name = "hi \n\ruser"
name.replace( /[\r\n]+/gm, ""); // hi user
本文地址:http://jquery.askforanswer.com/zaijavascriptzhongcongjsonshujuzhongshanchufanxiegang.html
文章标签: ,   ,  
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!