由于字符串中有出現了 換行符,導致轉json失敗,報錯:json parse error。
一般來講,直接用string的replace方法就可以了
?String str = "{\"adrdet\":\"阿歌嘎\n嘎、\",\"date\":\"2023/06/06\"}";String s = str.replaceAll("\n", "").replaceAll("\t","");System.err.println("第一種去除:"+s);
此時還不行的話,可以用下邊這個方式
Pattern p = Pattern.compile("\\s*|\r|\t|\n");
Matcher m = p.matcher(str);
String parse = m.replaceAll("");
System.out.println("第二種去除: ?"+parse);
\\s*代表匹配空白符,\r、\n代表換行符、回車,\t 制表符
這兩種方法能解決大部分的問題。如果還不行,可能就是反斜杠的問題了。
?String s1 = str.replaceAll("\\\\n", "");System.out.println("反斜杠去除:"+s1);
其中,第一個斜杠是轉義符,第二個斜杠是斜杠本身,第三個斜杠又是轉義符,第四個斜杠是斜杠本身。在 Java 中,輸出 "\n" 字符串需要兩個反斜杠和一個 'n',在 Java 的正則表達式中,要給這兩個反斜杠分別再分配一個反斜杠進行轉義,才能生效。
之后再用去除之后的轉json就會正常了,不會再報錯了。