json字符串转json对象java,java json 转义
1问题背景:同学A收到同学B发来的json数据,带有转义字符,比如:
{key: 1, data: {type: 2, value: test test}}如果您只想查看数据,请找到一个网站并删除转义,例如
Json逃生网站
但是,如果您需要在代码级别移除escape,并且还不想依赖第三方库,该怎么办呢?
2解决方案使用String类的replaceAll方法。具体来说:
String.replaceAll(\\\ ,)
测试代码:
公共类hello world { static String test= { key :1, data:{type:2, value : test test } } ;public static void main(String[]args){ String aa=test . replace all( \ \ \ , );system . out . println( result:\ n aa);}}以上代码可以直接通过java在线测试平台验证,例如:菜鸟工具Java在线运行。
3详细解释答案。现在来详细说说。
3.1 replaceAll函数语法公共字符串replaceAll(字符串正则表达式,字符串替换)
参数regex匹配该字符串的正则表达式。
替换用于替换每个匹配项的字符串。
如果返回值成功,则返回被替换的字符串;如果失败,将返回原始字符串。
3.2解释一下为什么regex需要等于四个斜杠才能去掉一个斜杠?
根据Java语言的要求,JAVA源代码的字符串中的反斜杠解释为Unicode转义或其他字符转义。因此,在字符串中必须使用两个反斜杠来表示正则表达式可以被Java字节码编译器保护不被解释。
在其他语言(比如python)中,一个反斜杠\就足够转义了,而在Java中,正则表达式在其他语言中需要两个反斜杠才能被解释为转义。也可以简单理解为,在Java的正则表达式中,两个\ \代表其他语言中的一个\。
所以以上四个\ \ \,其实只有两个\。第一个是转义,第二个是实际人物,最后匹配一个真实\人物。
综上所述,替换json字符串的转义符\可以使用String.replaceAll(\\\ \ ,)的方法。
4参考java正则表达式
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。