我刚刚发起了一个Web请求,得到了一个HttpResponse对象。响应以JSON格式返回,因此我需要对其进行解析。我可以使用一个非常复杂的方法来完成它,但似乎肯定有更好的方法。
这真的是我能做的最好的吗?
HttpResponse response; // some response object
Reader in = new BufferedReader(
new InputStreamReader(response.getEntity().getContent(), "UTF-8"));
StringBuilder builder= new StringBuilder();
char[] buf = new char[1000];
int l = 0;
while (l >= 0) {
builder.append(buf, 0, l);
l = in.read(buf);
}
JSONTokener tokener = new JSONTokener( builder.toString() );
JSONArray finalResult = new JSONArray( tokener );
如果这有任何区别的话,我正在使用Android。
BufferedReader
内部已经缓冲了 8KB。总之,这可能是微观优化,两种方式都足够好,我更喜欢可读性更强的代码。你正在使用的习惯用法是典型的字节流用法,而不是字符流用法。PS:你为什么编辑问题将StringBuffer
替换为StringBuilder
?现在对于第一次阅读问题的人来说,我的建议就变得没有那么有意义了 :) - BalusC