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);