Ozo*_*one 16 javascript jquery json
在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("\\", "");
Run Code Online (Sandbox Code Playgroud)
但这对我不起作用.有帮助吗?
Edg*_*ado 36
你的字符串无效,但假设它是有效的,你必须这样做:
var finalData = str.replace(/\\/g, "");
Run Code Online (Sandbox Code Playgroud)
当你想要替换所有出现的时候.replace,第一个参数必须是一个正则表达式,如果你提供一个字符串,只会替换第一个出现,这就是你的替换不起作用的原因.
干杯
Fel*_*ing 32
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\"]}"}
Run Code Online (Sandbox Code Playgroud)
即你有一个顶级对象,一个键,data.该键的值是一个包含JSON本身的字符串.这通常是因为服务器端代码没有正确创建JSON.这就是你看到\"字符串内部的原因.这使得解析器知道"要按字面处理并且不终止字符串.
因此,您可以修复服务器端代码,这样就不会对数据进行双重编码,或者您必须对JSON进行两次解码,例如
var data = JSON.parse(JSON.parse(json).data));
Run Code Online (Sandbox Code Playgroud)