Próbuję odczytać z adresu URL następujące dane:
{"to": "DKK", "rate": 7.4417, "from": "EUR"}
I próbuję odczytać to za pomocą tego kodu:
JSONObject obj = new JSONObject();
JSONObject obj2 = obj.getJSONObject(site);
String to = (String)obj2.get("to");
Double rate = obj2.getDouble("rate");
I pojawia się następujący błąd:
org.json.JSONException: No value for http://rate-exchange-1.appspot.com/currency?from=EUR&to=DKK
04-22 23:06:56.114 19331-19991/com.converter.android.converter W/System.err: at org.json.JSONObject.get(JSONObject.java:389)
04-22 23:06:56.114 19331-19991/com.converter.android.converter W/System.err: at org.json.JSONObject.getJSONObject(JSONObject.java:609)
04-22 23:06:56.114 19331-19991/com.converter.android.converter W/System.err: at com.converter.android.converter.ConvertActivity$Parse.doInBackground(ConvertActivity.java:1579)
04-22 23:06:56.114 19331-19991/com.converter.android.converter W/System.err: at com.converter.android.converter.ConvertActivity$Parse.doInBackground(ConvertActivity.java:1547)
04-22 23:06:56.114 19331-19991/com.converter.android.converter W/System.err: at android.os.AsyncTask$2.call(AsyncTask.java:295)
04-22 23:06:56.114 19331-19991/com.converter.android.converter W/System.err: at java.util.concurrent.FutureTask.run(FutureTask.java:237)
04-22 23:06:56.114 19331-19991/com.converter.android.converter W/System.err: at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)
04-22 23:06:56.114 19331-19991/com.converter.android.converter W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
04-22 23:06:56.114 19331-19991/com.converter.android.converter W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
04-22 23:06:56.114 19331-19991/com.converter.android.converter W/System.err: at java.lang.Thread.run(Thread.java:818)
Możesz mi pomóc?
Odpowiedzi:
0 dla odpowiedzi № 1To jest twój problem, nie można bezpośrednio uzyskać obiektu Json za pomocą adresu URL, ponieważ nie jest to obiekt json:
JSONObject obj2 = obj.getJSONObject(site);
Tutaj znajdziesz kilka przykładów:
Android - pobierz plik JSON z adresu URL
Pobierz plik, a następnie użyjesz getJSONObject()
metoda.