Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

zephirus

Java - Json parser error

Mensagens Recomendadas

zephirus

Olá,

Estou a seguir o tutorial abaixo para obter dados de um webservice:

http://mobile.dzone.com/news/android-tutorial-how-parse

Consigo correr o exemplo que está no site sem qualquer problema mas quando mudo o url para o do meu site: "http://tracking.zephirus.info/?q=my_drupal_pages" e altero as seguintes linhas:

JSONArray earthquakes = json.getJSONArray("earthquakes"); => JSONArray earthquakes = json.getJSONArray("nodes");

map.put("name", "Earthquake name:" + e.getString("eqid")); => map.put("name", "Earthquake name:" + e.getString("title"));

map.put("magnitude", "Magnitude: " + e.getString("magnitude")); => map.put("magnitude", "Magnitude: " + e.getString("body"));

obtenho um erro na minha aplicação (estou a desenvolver para android). O erro é o seguinte: Application has stopped unexpectedly.

É estranho isto acontecer porque os dados são praticamente os mesmos nos dois webservices. Alguém tem uma ideia do que posso estar a fazer mal?

Obrigado

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
NunoDinis

Os dados que estás a tentar listar vêm de uma BD ? Utilizo um webService numa aplicação que fiz na empresa, e não necessitei de Json.

De quaquer forma, posta o stacktrace aqui. Dizer que a aplicação parou, de facto, será um erro. Temos é que perceber onde está a acontecer :)


Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
zephirus

Obrigado pela vossa ajuda. Os dados vêm de uma bd drupal. Estou a usar um módulo no meu site onde configurei o REST server. Se usar o soapUI ou programas idênticos consigo obter resposta.

Aqui fica o LogCat:

01-05 14:47:58.263: E/log_tag(386): Error parsing data org.json.JSONException: Value <!DOCTYPE of type java.lang.String cannot be converted to JSONObject

01-05 14:47:58.263: D/AndroidRuntime(386): Shutting down VM

01-05 14:47:58.273: W/dalvikvm(386): threadid=1: thread exiting with uncaught exception (group=0x40015560)

01-05 14:47:58.273: E/AndroidRuntime(386): FATAL EXCEPTION: main

01-05 14:47:58.273: E/AndroidRuntime(386): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.pxr.tutorial.xmltest/com.pxr.tutorial.json.Main}: java.lang.NullPointerException

01-05 14:47:58.273: E/AndroidRuntime(386): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)

01-05 14:47:58.273: E/AndroidRuntime(386): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)

01-05 14:47:58.273: E/AndroidRuntime(386): at android.app.ActivityThread.access$1500(ActivityThread.java:117)

01-05 14:47:58.273: E/AndroidRuntime(386): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)

01-05 14:47:58.273: E/AndroidRuntime(386): at android.os.Handler.dispatchMessage(Handler.java:99)

01-05 14:47:58.273: E/AndroidRuntime(386): at android.os.Looper.loop(Looper.java:123)

01-05 14:47:58.273: E/AndroidRuntime(386): at android.app.ActivityThread.main(ActivityThread.java:3683)

01-05 14:47:58.273: E/AndroidRuntime(386): at java.lang.reflect.Method.invokeNative(Native Method)

01-05 14:47:58.273: E/AndroidRuntime(386): at java.lang.reflect.Method.invoke(Method.java:507)

01-05 14:47:58.273: E/AndroidRuntime(386): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)

01-05 14:47:58.273: E/AndroidRuntime(386): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)

01-05 14:47:58.273: E/AndroidRuntime(386): at dalvik.system.NativeStart.main(Native Method)

01-05 14:47:58.273: E/AndroidRuntime(386): Caused by: java.lang.NullPointerException

01-05 14:47:58.273: E/AndroidRuntime(386): at com.pxr.tutorial.json.Main.onCreate(Main.java:43)

01-05 14:47:58.273: E/AndroidRuntime(386): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)

01-05 14:47:58.273: E/AndroidRuntime(386): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)

01-05 14:47:58.273: E/AndroidRuntime(386): ... 11 more

01-05 14:48:00.663: I/Process(386): Sending signal. PID: 386 SIG: 9

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
NunoDinis

Se carregares duas vezes sobre a primeira linha vai-te levar a algum trecho de código ?


Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
zephirus

UPDATE: aparentemente tinha o url errado. O drupal induziu-me em erro por causa da diferença entre "_" e "-"... damn!

De qualquer forma, neste exemplo já está a funcionar, mas se eu mudar os campos e o url já não funciona.

A funcionar:

url: http://tracking.zephirus.info/my-drupal-pages

fields: title, body

Não funciona:

url: http://rtball.zephirus.info/my-drupal-pages

fields: field_transaction_jogador, field_transaction_valor

Isto poderá estar relacionado com o tipo de de dados dos campos na base de dados???

Se carregares duas vezes sobre a primeira linha vai-te levar a algum trecho de código ?

Não, não me mostra nada. De qualquer forma, parece-me que isto tinha a ver apenas com o facto de eu ter o url errado. Agora não funcionar com o segundo link que coloquei acima é que já não percebo...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
zephirus

Descobri o problema. Que azelhiçe!!! TInha o meu site em maintenance e assim não conseguia ter acesso à página. Isto porém leva-me a outra questão que tem a ver com as permissões. Suponho que seja possível fazer login e o processo seja idêntico, correcto?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
NunoDinis
De qualquer forma, neste exemplo já está a funcionar, mas se eu mudar os campos e o url já não funciona.

E que erro te dá agora ? Sempre que te dê um erro novo convém postares logo. É desnecessário estar sempre a pedir.

Editado por NunoDinis

Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
zephirus

E que erro te dá agora ? Sempre que te dê um erro novo convém postares logo. É desnecessário estar sempre a pedir.

É verdade Nuno. No entanto o erro até era o mesmo e tinha a ver com o facto de a página não estar acessível. De qualquer forma, o facto de ter colocado aqui a questão ajudou-me a conseguir dar a volta ao problema.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.