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.