Ваш пар. является прекрасным. Если предоставленный фрагмент кода действительно относится к трассировке стека исключений, то я полагаю, что свойство response
JSON, которое вы пытаетесь проанализировать, имеет значение, отличное от строки. Например,
{ "response": "ok" }
может быть проанализирован вашим парсером в порядке. Тем не менее, самое близкое сообщение исключения вы можете получить с помощью синтаксического анализа является JSON аналогично приведенному ниже:
{ "response": {"status": "ok"} }
, что должно произойти сбой с чем-то вроде
Exception in thread "main" java.lang.IllegalStateException: Expected a string but was BEGIN_OBJECT at line 1 column 16 path $.response
Также отметит, что Gson сообщает проблематичное место в наименее в его последних версиях (я тестировал его с помощью Gson 2.5). Просто убедитесь, что вы получаете ожидаемый ввод. Если вы считаете, что ответ должен быть в указанном вами формате, попробуйте проследить поток ввода и найти различия. Трассировка входного потока в самой простой, но не наиболее эффективной реализации, и вы могли бы немного более эффективный читателя кальки так:
private static Reader traceReader(final Reader reader) {
return new Reader() {
@Override
public int read(final char[] buffer, final int offset, final int length)
throws IOException {
final int read = reader.read(buffer, offset, length);
if (read != -1) {
// or any other appropriate tracing output here
out.print(new String(buffer, offset, read));
out.flush();
}
return read;
}
@Override
public void close()
throws IOException {
reader.close();
}
};
}
с:
JsonReader reader = new JsonReader(traceReader(new InputStreamReader(in, "UTF-8")))
Затем просто повторно проверить, если вы «действительно получается { "response": "ok" }
.
Настоятельно рекомендую использовать библиотеку 'gson' для чего-то вроде этого .... удаляет тонкий код шаблона и меньше подвержен ошибкам. –
JsonReader находится в библиотеке gson – student
https://github.com/google/gson ..... в частности, чтобы отображать ваши POJO Java в/из json, а не с помощью специального кода. –