我在数据库中有一个像这样的JSON字符串:
{"name" : "DROCK", "details" : [{"age" : "23", "degree" : "BE", "Experience" : "worked in a company\6as an intern"}]}
我想删除\字符,但这不是有效的转义字符串。我尝试使用StringEscapeUtil,但在这里没有帮助我。
我在这里使用的代码:
import org.apache.commons.lang.xwork.StringEscapeUtils;
public class JSONEscape {
public static void main(String args[]) {
String testString = "{\"name\" : \"DROCK\", \"details\" : [{\"age\" : \"23\", \"degree\" : \"BE\", \"Experience\" : \"worked in a company\6as an intern\"}]}";
System.out.println(StringEscapeUtils.escapeJava(testString));
}
}
我应如何转义有效的\字符并删除此类流氓字符。但我想保留有效的转义字符,例如\ n,\ t等。
最后,我想要这样的结果:
{"name" : "DROCK", "details" : [{"age" : "23", "degree" : "BE", "Experience" : "worked in a company6as an intern"}]}
答案 0 :(得分:0)
如果您想删除JSON字符串中的错误转义序列,那很容易。
String testString = "{\"name\" : \"DROCK\", \"details\" : [\"age\" : \"23\", \"degree\" : \"BE\", \"Experience\" : \"worked in a company\\6as an intern\"]}";
System.out.println(testString.replaceAll("\\([^bfnrt\"\\])", "$1"));
RegEx的字面意思是“在反斜杠后跟无效转义字符的任何地方,都应删除反斜杠”。