在开发中我们总会调用第三方接口,需要对第三方接口的返回值进行处理,当返回值json格式里面的值存在转移字符时,我们需要做转移处理,如下返回值,
方法一:
先拼接成一个数组,将数组转成jsonArray,再取出String的值,最后解析成Object。代码如下
@org.junit.Test
public void testA(){
String a = "[\"";
String b = "\"]";
String s = "{\\\"fullname\\\":\\\"lalala\\\",\\\"id\\\":\\\"1\\\",\\\"mobile\\\":\\\"1888\\\",\\\"password\\\":\\\"$2a$10$\\\",\\\"username\\\":\\\"admin\\\"}";
String w = a + s + b;
log.info("wwwwwwwwwwwwwwwwwwwwwwwwwww:{}",w);
JSONArray jsonArray = JSONArray.parseArray(w);
log.info("------------{}",jsonArray);
JSONObject resp = JSONObject.parseObject(jsonArray.get(0).toString());
log.info("userDetailObject--------------------:{}",resp);
}
方法二:直接用common的工具类进行去除。运行结果和代码如下
@org.junit.Test
public void testB(){
String aa = "{\\\"fullname\\\":\\\"lalala\\\",\\\"id\\\":\\\"1\\\",\\\"mobile\\\":\\\"1888\\\",\\\"password\\\":\\\"$2a$10$\\\",\\\"username\\\":\\\"admin\\\"}";
String s1 = StringEscapeUtils.unescapeJava(aa);
log.info("工具类转换--------------------------:{}",s1);
}
总结:第二种方法更为方便。