今天遇到一个巨神奇的错误,JSONArray.parseArray(String text,Class<?> clazz)方法,单测没问题,一模一样的数据,一模一样的传参,但是项目代码里就不行,导包之类的都检查了。
但是项目代码里就会报JSONException: illegal identifier的错误。
JSON数据格式如下。
[{\"name\":\"zhangsan\",\"age\":\"18\"},{\"name\":\"wangwu\",\"age\":\"19\"}]
最后用如下代码就可以了。就是要转换一下JSON去掉 \"
String unescapeString = org.apache.commons.lang3.StringEscapeUtils.unescapeJava(text);
JSONArray.parseArray(unescapeString,clazz);
看别人还有说用hutool工具的。我没试,不过可以参考一下。
String string = StrUtil.strip(httpResponse.body(), "\"");
莫名其妙的,不太懂为啥单测没事,问朋友说是这种时候重启下idea,或者在别人电脑上跑一下试试。