2016-05-16 5 views
0

Я пытаюсь получить данные о погоде из формата JSON с этого JSON code. И мой код, чтобы получить это:Android JsonReader (Ожидаемое имя, но было BEGIN_OBJECT)

URL url ; 
HttpURLConnection httpURLConnection = null; 
String result =""; 
try { 
    url=new URL(params[0]); 
    httpURLConnection = (HttpURLConnection)url.openConnection(); 
    InputStream in = httpURLConnection.getInputStream(); 
    InputStreamReader reader = new InputStreamReader(in); 

    JsonReader jsonReader = new JsonReader(reader); 
    jsonReader.beginObject(); 
    while(jsonReader.hasNext()) 
    { 
     String name = jsonReader.nextName(); 
     Log.e("jsonname",name); 

    } 
    jsonReader.endObject(); 

и результат журнала

jsonnametofaa: response 
java.lang.IllegalStateException: Expected a name but was BEGIN_OBJECT 
    at android.util.JsonReader.nextName(JsonReader.java:390) 
    at com.example.tofaa.myapplication.Do.doInBackground(MainActivity.java:92) 
    at com.example.tofaa.myapplication.Do.doInBackground(MainActivity.java:72) 
    at android.os.AsyncTask$2.call(AsyncTask.java:295) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) 
    at java.lang.Thread.run(Thread.java:818) 

Я не получаю все объекты JSON.

+0

Есть ли причина, по которой вы не используете 'Gson'? –

+0

Я новичок в разработке Android, и я еще не знаю, что Gson –

+0

Взгляните на популярные библиотеки для разбора JSON, такие как [Gson] (https://github.com/google/gson), [Jackson] (https://github.com/FasterXML/jackson), [Моши] (https://github.com/square/moshi). – JJD

ответ

1

Воображение это ваш ответ JSON:

{ 
    "foo":"bar", 
    "foo2":"bar2" 
} 

Вы можете разобрать его, как это. Прежде всего, необходимо создать модель класса:

ModelClass.java

public class ModelClass { 
    public String foo; 
    public String foo2; 
} 

И вы можете разобрать его с помощью Gson так:

Gson gson = new Gson(); 
ModelClass instance = gson.fromJson(json, ModelClass.class); 

И не забудьте добавить его в вашей зависимости:

compile 'com.google.code.gson:gson:2.6.1'

+0

заранее заблаговременно я постараюсь это выяснить и ответить вам –

Смежные вопросы