Você está na página 1de 12

PROGRAMAÇÃO

ANDROID
JSON

Universidade Federal de Sergipe


Departamento de Sistemas de Informação
Prof. Andrés Menéndez
ammenendez@gmail.com
Introdução
• São várias as situações onde aplicações Android devem
“buscar” dados que não estão armazenadas no próprio
aparelho
• Basta lembrar de aplicações populares como Facebook e
Instagram, por exemplo
• Os dados dessas aplicações estão guardados em
servidores que são acessados através de conexões
internet
Introdução
Introdução
• Existem algumas maneiras de fazer a comunicação entre
a aplicação e o servidor. A forma mais comum entre
aplicações de dispositivos móveis são os web services do
tipo RESTful
• Estes web services são baseados em objetos do tipo
JSON
JSON
• JavaScript Object Notation (JSON)
• É uma sintaxe para armazenamento e troca de
informações como alternativa para o XML
• Os dados em JSON podem ser arranjados de duas
formas: arrays e objetos

• Exemplo para array


• [“Mercurio”, “Venus”, “Terra”]

• Exemplo para objetos


• {“nome” : “Terra”, “posicao” : 3, “habitavel”:true}
JSON
• Entretanto, o mais comum é termos um array de objetos,
como mostrado a seguir

{“planetas”:
[
{ “nome”: “Mercurio”,
“posicao”:1, Planetas é um array de objetos
“habitavel”:false
},
{ “nome”: “Terra”,
“posicao”:3,
“habitavel”:true
}
]
}
JSON
• Para aprender a manipular (na terminologia de
desenvolvimento chama-se fazer parser) o JSON vamos
criar uma classe que exibe os dados no JSON no LogCat

public static final String jsonPlanetas="{\"planetas\": " +


" [" +
" { \"nome\": \"Mercurio\"," +
" \"posicao\":1," +
" \"habitavel\":false" +
" }," +
" { \"nome\": \"Terra\"," +
" \"posicao\":3," +
" \"habitavel\":true" +
" }" +
" ]" +
"}";
JSON
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

try {
JSONObject planetas = new JSONObject(jsonPlanetas);
JSONArray arrayPlanetas = planetas.getJSONArray("planetas");
for (int i= 0; i < arrayPlanetas.length();i++) {
JSONObject planeta = arrayPlanetas.getJSONObject(i);
Log.d("MainActivity",planeta.getString("nome"));
Log.d("MainActivity", Integer.toString(planeta.getInt("posicao")));
Log.d("MainActivity", Boolean.toString(planeta.getBoolean("habitavel")));
}
} catch (JSONException e) {
e.printStackTrace();
}
}
JSON
• Vejamos o resultado no arquivo de Log
JSON
• Vamos analisar as linhas de código:

// obtém o objeto planeta


JSONObject planetas = new JSONObject(jsonPlanetas);

{“planetas”:
[
{ “nome”: “Mercurio”,
“posicao”:1,
“habitavel”:false
},
{ “nome”: “Terra”,
“posicao”:3,
“habitavel”:true
}
]
}
JSON
// obtém o array contendo todos os planetas
JSONArray arrayPlanetas = planetas.getJSONArray("planetas");

{“planetas”:
[
{ “nome”: “Mercurio”,
“posicao”:1,
“habitavel”:false
},
{ “nome”: “Terra”,
“posicao”:3,
“habitavel”:true
}
]
}
JSON
// percorrer todos os planetas
for (int i= 0; i < arrayPlanetas.length();i++) {
// obtém o objeto planeta
JSONObject planeta = arrayPlanetas.getJSONObject(i);

{“planetas”:
[
{ “nome”: “Mercurio”,
“posicao”:1,
“habitavel”:false
},
{ “nome”: “Terra”,
“posicao”:3,
“habitavel”:true
}
]
}

Você também pode gostar