json串反转义(消除反斜杠)

json字符串的值中包含反斜杠

{
    "image": "imageUrl",
    "sku": "A301",
    "name": "无痕直发接发片24\"化纤高温丝发帘-2#自然黑",
    "status": "有货"
}

其实它在字符串里面是这样显示的 

String s = "{\"image\":\"imageUrl\",\"sku\":\"A301\",\"name\":\"无痕直发接发片24\\\"化纤高温丝发帘-2#自然黑\",\"status\":\"有货\"}"
JSON.parseObject("{\"image\":\"imageUrl\",\"sku\":\"A301\",\"name\":\"无痕直发接发片24\\\"化纤高温丝发帘-2#自然黑\",\"status\":\"有货\"}", Test.class);

 执行JSON解析会报如下错误:

com.alibaba.fastjson.JSONException: unclosed.str.lits
at com.alibaba.fastjson.parser.JSONLexerBase.readString(JSONLexerBase.java:4892)     
at com.alibaba.fastjson.parser.JSONScanner.scanFieldString(JSONScanner.java:1012)     
at com.alibaba.fastjson.parser.deserializer.JavaBeanDeserializer.deserialze(JavaBeanDeserializer.java:567)     
at com.alibaba.fastjson.parser.deserializer.JavaBeanDeserializer.parseRest(JavaBeanDeserializer.java:1576)     
at com.alibaba.fastjson.parser.deserializer.FastjsonASMDeserializer_1_BaiduSearchImageInfoVO.deserialze(Unknown Source)     
at com.alibaba.fastjson.parser.deserializer.JavaBeanDeserializer.deserialze(JavaBeanDeserializer.java:284)     
at com.alibaba.fastjson.parser.DefaultJSONParser.parseObject(DefaultJSONParser.java:688)    at com.alibaba.fastjson.JSON.parseObject(JSON.java:396)     
at com.alibaba.fastjson.JSON.parseObject(JSON.java:300)     
at com.alibaba.fastjson.JSON.parseObject(JSON.java:573)
 StringEscapeUtils.unescapeJava(s)
    public void test_11(){
        try {
            String s = "{"image":"imageUrl","sku":"A301","name":"无痕直发接发片24\"化纤高温丝发帘-2#自然黑","status":"有货"}";
            System.out.println(s);
            String s1 = StringEscapeUtils.unescapeJava(s);
            System.out.println("s1:" + s1);
            String s2 = StringUtility.toJsonString(s1);
            System.out.println("s2:" + s2);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

得出结果如下:

s:{"image":"imageUrl","sku":"A301","name":"无痕直发接发片24\"化纤高温丝发帘-2#自然黑","status":"有货"}
s1:{"image":"imageUrl","sku":"A302","name":"无痕直发接发片24"化纤高温丝发帘-2#自然黑","status":"有货"}
s2:{"image":"imageUrl","sku":"A303","name":"无痕直发接发片24”化纤高温丝发帘-2#自然黑","status":"有货"}

这样就达到去除反斜杠的效果了, 从而执行 JSON.parseObject("{"image":"xxx.jpg","sku":"A301","name":"IPhone11\"5G","status":"有货"}", Test.class) 也不会报错了

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值