项目中调用第三方接口时,经常会遇到接口返回的结果中出现反斜杠导致解析失败出现异常。
1 { 2 "data":"{\"name\":\"张三\",\"result\":0,,\"sex\":\"男\",\"age\":\"18\"} 3 }
出现的原因:第三方的接口中将对象转为JSON对象后,使用toString()方法得到JSON字符串,对象上加上了反斜杠。
解决方法:
1 import org.apache.commons.lang3.StringUtils; 2 3 4 public class StringAcceptUtil { 5 6 /** 7 * 处理调用接口回参中的特殊字符 8 * @param str 9 * @return 10 */ 11 public static String replaceAll(String str){ 12 String replaceAll3 = null; 13 if(!StringUtils.isBlank(str)){ 14 String replaceAll = str.replaceAll("\\\\", ""); 15 System.out.println(replaceAll); 16 String replaceAll2 = replaceAll.replaceAll("\"[{]", "{"); 17 replaceAll3 = replaceAll2.replaceAll("[}]\"", "}"); 18 } 19 20 return replaceAll3; 21 } 22 }