2015-01-24 4 views
2

Я работаю на разбор локального JSON с помощью GSON Library.Here моей структурыПроблемы в разборе JSON с помощью библиотеки GSON

{ 
    "employees":[ 
    { 
    "id":100, 
    "name":"Ranjith" 
    }, 
    { 
    "id":101, 
    "name":"Satheesh" 
    }] 
} 

JSON Я должен отобразить это в списке view.Here моего код

public void loadfromfile() 
{ 
    try { 
     AssetManager am = getAssets(); 
     InputStream is = am.open("sample.json"); 
     BufferedReader br=new BufferedReader(new InputStreamReader(is)); 
     Gson gson=new Gson(); 
     JsonReader reader=new JsonReader(br); 
     reader.beginObject(); 
     while (reader.hasNext()) { 

      String name = reader.nextName(); 

      if (name.equals("success")) { 
       success =reader.nextBoolean(); 
      } 

      else if(name.equals("employees")){ 
       reader.beginArray(); 
       while (reader.hasNext()) { 

        Employee employee= gson.fromJson(String.valueOf(reader), Employee.class); 

        emplist.add(employee); 
       } 
       reader.endArray(); 
      } 
     } 

    reader.endObject(); 
    reader.close(); 
     dataAdapter.notifyDataSetChanged(); 
    }catch (IOException ex){ 

     ex.printStackTrace(); 
    } 

, когда я запускаю этот IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1. Я использую отдельный класс для установки и получения полей в json. Как решить эту проблему.

ответ

2

Убедитесь, что вы импортировали

import com.google.gson.stream.JsonReader 

Не преобразовать его в строку, передать читателю непосредственно gson.

Employee employee= gson.fromJson(reader, Employee.class); 
+0

Но когда я использовать его без преобразования андроид студии уведомит как ошибки и говорит «не может решить fromjson (....)» – Ranjith

+0

от считывателя принимает JsonReader в качестве параметра, оно должно быть что-то другое. Поскольку я только что скопировал ваш код и попробовал, он работает нормально, без преобразования. Вы уверены, что используете правильный метод? выше должны работать должным образом. Только одно: вы используете jsonfrom или jsonFrom? или это было просто упоминание –

+0

Я проверил, что он не работает – Ranjith

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