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