“Parseando” JSON no Android

JSONObjects

Para exemplificar vou utilizar o seguinte código:

{
"title":"Example Schema",
"type":"object",
"properties":[
{
"data":{
"name":"Mark",
"age":20
}
},
{
"data":{
"name":"Smith",
"age":20
}
}
],
"required":[
"firstName",
"lastName"
]
}

Suponha que este código JSON está em uma variável chamada jsonString. Primeiro devemos criar uma instancia do objeto JSONObject que irá mapear a string em uma estrutura de chaves e valores.

JSONObject js = new JSONObject(jsonString);

Agora, para obter por exemplo o titulo do tipo String basta chamar o método getString() da classe JSONObject:

String title = js.getString("title");

Se você quer obter todas as propriedades, utilize a classe JSONArray que guarda um conjunto ordenado de objetos do tipo JSONObject ou JSONArray:

JSONArray properties = js.getJSONArray("properties");

Para obter um item dentro do JSONArray você deve utilizar o método getJSONObject(). A iteração sobre pode ser feita da seguinte maneira:

String[] names = new String[properties.length()];
int[] ages = new int[properties.length()];
for (int i=0; i<properties.length(); i++){
names
[i] = properties.getJSONObject(i).getJSONObject("data").getString("name");

ages
[i] = properties.getJSONObject(i).getJSONObject("data").getInt("age");
}

Ps: Eu não testei efetivamente esse código mas, tenho 90% de certeza que funciona =P. Para mais detalhes consulte a documentação da biblioteca org.json no site oficial.