Gson: parsrování lokálního json souboru na objekty

Dnes si ukážeme jednoduchý příklad jak parsrovat lokální .json na objetky. Na tuto práci je perfektní knihovna gson, přidáme ji mezi závislosti:

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

Náš ukázkový file.json vypadá následovně:

{
  "list": [
    {
      "name": "Faraz Khonsari",
      "age": 24
    },
    {
      "name": "John Snow",
      "age": 28
    },
    {
      "name": "Alex Kindman",
      "age": 29
    }
  ]
}

Jedná se o list objektů. Jednoduché. Uděláme si objekt, který namapuje list jako ArrayList, ve kterém budou objekty s propertou name a age:

public class MyModel {

   @SerializedName("list")
   public ArrayList<MyObject> list;

   static public class MyObject {

      @SerializedName("name")
      public String name;

      @SerializedName("age")
       public int age;
   }
}

Načteme soubor:

public String inputStreamToString(InputStream inputStream) {
   try {
      byte[] bytes = new byte[inputStream.available()];
      inputStream.read(bytes, 0, bytes.length);
      String json = new String(bytes);
      return json;
   } catch (IOException e) {
      return null;
   }
}

Přečteme obsah souboru:

String myJson=inputStreamToString(mActivity.getResources().openRawResource(R.raw.file));

Obsah souboru konvertujeme na objekt:

MyModel myModel = new Gson().fromJson(myJson, MyModel.class);