我这里有一个json字符串,字符串里的某一个键对应的值,里面带有一些\n符号,这个值以字符串的形式打印出来是这样的:
abc
def
ghi
,但是当用这个json字符串来创建一个JsonObject,调用toString()方法后,显示的就是:
"abc\ndef\nghi"了。
我想让这个JsonObject对象的toString()方法打印出来的字符串也可以显示回车换行,请问有什么好的方法可以解决吗?
这说明这个值里面本身就带有回车符,打印时候自动转义换行了,toString就把回车符打印出来了,不要的话直接replace掉不就行了
如果纯粹是为了打印出来,先indexOf判断是否包含\n,然后rplace掉,如果用jsonObject,直接用就行了
把\n替换为\r\n,就可以实现效果,不过不建议这样操作
我就想将方法的堆栈加到这个Json字符串里:
private String getStackTrace() {
stringBuffer.delete(0, stringBuffer.length());
Throwable ex = new Throwable();
StackTraceElement[] stackElements = ex.getStackTrace();
if (stackElements != null) {
for (int i = 0; i < stackElements.length; i++) {
stringBuffer.append(stackElements[i].getClassName());
stringBuffer.append(".");
stringBuffer.append(stackElements[i].getMethodName());
stringBuffer.append("(");
stringBuffer.append(stackElements[i].getFileName());
stringBuffer.append(":");
stringBuffer.append(stackElements[i].getLineNumber());
stringBuffer.append(")\n");
}
}
Log.e("infoo","stringBuffer = "+stringBuffer.toString());
return stringBuffer.toString();
}
如果想利用\n实现换行效果的话,能不能添加一个静态方法,接收一个字符串,方法内部以'\n'分割,得到一个数组,之后遍历输出;
或者继承JsonObject之后重写toString方法~
将反斜杠\转义一下不就行了