[英]java JSON and string in Android
我正在通过android中的php查询数据库。 这是我的相关代码
String result = null;
InputStream is = null;
StringBuilder sb = null;
is = entity.getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(is,"UTF-8"));
sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null)
{
sb.append(line + "\n");
}
is.close();
result = sb.toString();
JSONArray jArray = new JSONArray(result);
这是我尝试解析的链接和返回的数据。
一切顺利,直到最后一次声明。 当我尝试打印结果的长度时,它是正确的长度。 但是,如果我尝试使用打印输出结果
Log.e ("ERROR", result);
和adb logcat查看输出,它被截断了。 因此,如果将截断的字符串结果传递到JSONArray中,则肯定会崩溃。 它总是在“ Pyrmont Bay Wh”之后被截断,它比返回值低4048个字符。 因此,请猜我的问题是为什么变量“结果”被截断了。 谢谢
Logcat会截断长字符串。
$ adb logcat -g
/dev/log/main: ring buffer is 64Kb (63Kb consumed), max entry is 5120b, max payload is 4076b
您可以做的一件事是按照此SO post的建议将字符串拆分为可打印的块:
int maxLogSize = 1000;
for(int i = 0; i <= veryLongString.length() / maxLogSize; i++) {
int start = i * maxLogSize;
int end = (i+1) * maxLogSize;
end = end > veryLongString.length() ? veryLongString.length() : end;
Log.v(TAG, veryLongString.substring(start, end));
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.