2017-06-05 145 views
2

替换\”我有一个JSON字符串:如何使用空值

{ 
    "key1": "abc", 
    "key2": "def", 
    "key3": "gh\"i\"j" 
} 

预期的O/P:

{ 
    "key1": "abc", 
    "key2": "def", 
    "key3": "ghij" 
} 

Java字符串replace()replaceAll()更换所有双引号:

System.out.println(a.replaceAll("\\\"","")); 

System.out.println(a.replace("\"","")); 

输出:

{ 
    key1: abc, 
    key2: def, 
    key3: ghij 
} 

我试图替换\"的原因是某些操作必须使用JSON完成,转义特殊字符并将JSON字符串存储到数据库。在这里,由于\",json变得无效。

我怎样才能用空值替换\"

+1

'的replaceAll( “\\\\\”” ,“”)'的作品,但我仍在试图弄清楚为什么,看起来你是“没有足够的逃脱” –

+0

'\\\\'在字符串转义之后是'\\'这是正则表达式转义' \' – amiramw

回答

1

您想用空字符串替换\"

\在正则表达式中有特殊含义,所以您需要将其转义。因此,您需要用空字符串替换\\"

然后,在字符串中写入字符串\\"需要转义每个\ + "

因此,表达的是\\ \\ \"(我增加了可读性一些空格):

最后,你需要把它写这样的:

a.replaceAll("\\\\\"", ""); 
+0

谢谢,它工作。我仍然想知道如何replaceAll(“\\\”“,”)'用空替换'\“'。 – Naive