我想向后台报告异常问题,但是,有很多特殊字符需要删除。例如,\u003c (<)和\u003e (>)从该节点签名。
{
"declaringClass":"android.widget.Toast",
"fileName":"Toast.java",
"isNativeMethod":false,
"lineNumber":208,
"methodName":"\u003cinit\u003e"
}我也看到了\u0027 (撇号)。
"detailMessage":"Attempt to invoke virtual method \u0027java.lang.String android.content.Context.getPackageName()\u0027 on a null object reference"最后,只要有类引用,就会添加美元符号。
com.test.ExceptionFragment$1trackExceptions$1(ExceptionFragment.java:201)有没有什么通用的方法可以把这些符号从JSON中剔除?还是正则表达式是最好的解决方案?如果使用正则表达式,那么什么正则表达式可以解决上述场景?
发布于 2020-12-14 02:27:09
试试这个
字符串= org.apache.commons.lang.StringEscapeUtils.unescapeJava(str);
有关更多参考信息,请参阅https://commons.apache.org/proper/commons-lang/
其他参考https://docs.oracle.com/javase/specs/jls/se9/html/jls-3.html
commons:commons- UnicodeUnescaper也是可以接受的。
new UnicodeUnescaper().translate("\u0048\u0065\u006C\u006C\u006F World")返回"Hello World“
发布于 2020-12-14 07:51:03
为什么你认为这些字符是“不必要的”?
<init>和init不是一回事,所以你的错误报告可能会让人感到困惑。
同样,美元符号是类名中的一个重要字符。
https://stackoverflow.com/questions/65279090
复制相似问题