feign传输String json串 自动转义 \ 解决方法

@RequestMapping(value={"/sysOrgRest/getInfoByOrgIds"}, method={org.springframework.web.bind.annotation.RequestMethod.POST})
public void getInfoByOrgIds(@RequestBody String param) {
try {
log.info("before param is {}",param);
if(param.contains("\"")) {
param = org.apache.commons.lang.StringEscapeUtils.unescapeJava(param);
param= param.replaceFirst("\"", "");
param= param.substring(0,param.length()-1);
}
log.info("after param is {}",param);
JSONObject object = JSONObject.parseObject(param);
if (object.containsKey("enterpriseid") && object.containsKey("orgIds")) {
List<Long> orgIds = (List<Long>) object.get("orgIds");
Integer enterpriseid = (Integer) object.get("enterpriseid");
}
} catch (Exception e) {
log.error(e.getMessage(), e);
}


<!-- https://mvnrepository.com/artifact/commons-lang/commons-lang -->
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>



13:39:32.393 expressLog [http-nio-8889-exec-2] DEBUG o.s.w.s.m.m.a.RequestResponseBodyMethodProcessor - Read "application/json;charset=UTF-8" to [""{\"orgIds\":[477,476,261,1,13],\"enterpriseid\":1}""]
13:39:32.394 expressLog [http-nio-8889-exec-2] INFO com.paic.express.rest.test - before param is "{\"orgIds\":[477,476,261,1,13],\"enterpriseid\":1}"    转义了。
13:39:35.576 expressLog [http-nio-8889-exec-2] INFO com.paic.express.rest.test - after param is {"orgIds":[477,476,261,1,13],"enterpriseid":1}     解决

猜你喜欢

转载自www.cnblogs.com/hsq666666/p/11320657.html