Я использую парсер Jackson JSON, поскольку я слышал, что он был намного более эффективен, чем парсер Android по умолчанию. Я узнал, как использовать его с этого урока здесьAndroid Jackson JSON Parser null value
http://www.mkyong.com/java/jackson-streaming-api-to-read-and-write-json/
который отлично учебник, если кто-то хочет, чтобы узнать, как использовать Jackson JSON парсер.
Однако у меня возникла проблема в том, что я могу разбирать данные в Java с URL-адреса, однако, когда я использую Jackson с Android, я получаю нулевые значения или экран по какой-то причине просто черным.
Для того, чтобы восстановить данные с сайта я использую этот код здесь
http://www.javacodegeeks.com/2011/01/android-json-parsing-gson-tutorial.html
private InputStream retrieveStream(String url) {
DefaultHttpClient client = new DefaultHttpClient();
HttpGet getRequest = new HttpGet(url);
try {
HttpResponse getResponse = client.execute(getRequest);
final int statusCode = getResponse.getStatusLine().getStatusCode();
if (statusCode != HttpStatus.SC_OK) {
Log.w(getClass().getSimpleName(),
"Error " + statusCode + " for URL " + url);
return null;
}
HttpEntity getResponseEntity = getResponse.getEntity();
return getResponseEntity.getContent();
}
catch (IOException e) {
getRequest.abort();
Log.w(getClass().getSimpleName(), "Error for URL " + url, e);
}
return null;
}
Тогда в моем методе данных синтаксического анализа
InputStream source = retrieveStream(url);
try {
JsonFactory jfactory = new JsonFactory();
JsonParser jParser = jfactory.createJsonParser(source);
Затем я анализирую данные, был показан в учебнике I, приведенном выше
while (jParser.nextToken() != JsonToken.END_OBJECT) {
String fieldname = jParser.getCurrentName();
if ("Name".equals(fieldname)) {
jParser.nextToken();
this.setName(jParser.getText());
}
if ("Number".equals(fieldname)) {
jParser.nextToken();
this.setNumber(jParser.getText());
}
}
URL-адрес, который я использую, - это созданный фиктивный сайт, на котором есть только файл JSON, который я использую для разбора парсера Jackson JSON.
Теперь я знаю, что мой код данных синтаксического анализа в порядке, так как я в обычном Java-классе, я могу проанализировать данные с сайта с помощью кода, который я создал, и он отлично работает.
Однако, если я попытаюсь использовать код на Android с кодом, который я только что показал, я просто получаю черный экран по какой-то странной причине. У меня есть разрешения на доступ к интернету в манифесте
Есть ли что-то не так с кодом http, который я использовал? Если бы кто-нибудь мог показать мне, как это должно быть сделано? А также почему я получаю черный экран, я не понимаю, почему он это показал.
Заранее спасибо
Вы знаете, что теперь у андроида есть официальная поддержка JSON в API. , , – Mob
Я знаю это, но Джексон JSON должен быть намного быстрее, и именно поэтому я выбрал его – AdamM
@AdamM couhld, пожалуйста, укажите, где находится ошибка? – JoxTraex