java replaceAll替换\的问题

字符串  String extendVal = "{\"className\":\"111\",\"flags\":[11],\"extras\":{\"state\":\"powerTransfer\"}}";  在Map<String,Object> objectMap = JSONObject.parseObject(extendVal,Map.class);时会失败,需去掉\

需要对  extendVal = extendVal.replaceAll("\\\\","");替换掉\再转Map<String,Object> objectMap = JSONObject.parseObject(extendVal,Map.class)

原因:

String 的 replaceAll()方法,采用的是正则表达式的规则匹配, 

四个\\\\  ,java解析为\\交给正则表达式,  正则表达式再经过一次转换,把\\转换成为\ 

这就是java里面要用正则来表示一个 \ 必须写成4个\

posted @ 2019-08-28 16:38  金州恶汉拉文  阅读(2762)  评论(0编辑  收藏  举报