У меня есть объект HttpResponse для веб-запроса, который я только что сделал. Ответ в формате JSON, поэтому мне нужно его разобрать. Я могу сделать это абсурдно сложным способом, но похоже, что должен быть лучший способ.Как разобрать JSON из Java HTTPResponse?
Это действительно лучшее, что я могу сделать?
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, если это имеет значение.
Не будет ли код в вопросе читать его поток с потоком по 1000 байт за раз? Очевидно, это зависит от среднего размера строки вывода, но это может быть намного меньше партий, чем по одной строке. –
Нет, поскольку имя метода уже намекает, 'BufferedReader # readLine()' считывает поток по строкам. То есть он разбивает поток на строки новой строки. Попробуйте и испытайте себя. – BalusC
Справа. Это моя точка зрения. Если в среднем строка меньше 1000 символов с использованием BufferedReader # readLine() будет включать в себя больше времени через цикл, чем BufferedReader # read(). (Не то, чтобы разница, по-видимому, имела значение, если на выходе не было много коротких строк.) –