json
DESCRIPTION
Material AndroidTRANSCRIPT
![Page 1: Json](https://reader034.vdocumento.com/reader034/viewer/2022051821/563db97b550346aa9a9dbc47/html5/thumbnails/1.jpg)
Instructor: Rodrigo Iván Fonseca Daza
![Page 2: Json](https://reader034.vdocumento.com/reader034/viewer/2022051821/563db97b550346aa9a9dbc47/html5/thumbnails/2.jpg)
Hemos aprendido a manipular interfaces gráficas en Android, y crear elementos dinámicos (botones, listas, galerías, etc.)
También hemos aprendido a manipular el API de Google Maps, para señalar lugares usando marcadores
Hemos manipulado algunos dispositivos embebidos en el teléfono/tablet (localizador gps, cámara…)
Finalmente, hemos logrado guardar información de la aplicación a nivel local, por medio de SQLite y SharedPreferences
![Page 3: Json](https://reader034.vdocumento.com/reader034/viewer/2022051821/563db97b550346aa9a9dbc47/html5/thumbnails/3.jpg)
A partir de ahora, la información la obtendremos desde servicios web. ◦ Información de lugares, incluyendo localización,
descripción, imágenes, ofertas…
Antes, debemos definir un mecanismo de comunicación entre los servidores y el dispositivo móvil.
![Page 4: Json](https://reader034.vdocumento.com/reader034/viewer/2022051821/563db97b550346aa9a9dbc47/html5/thumbnails/4.jpg)
SOAP
REST – XML
REST – JSON
XML - RPC
![Page 5: Json](https://reader034.vdocumento.com/reader034/viewer/2022051821/563db97b550346aa9a9dbc47/html5/thumbnails/5.jpg)
Por su simplicidad, utilizaré el formato JSON para la publicación de los Web Services para la aplicación. ◦ Se puede consultar con HTTP requests
◦ Es fácil de probar
◦ Hay librerías para procesarlo fácilmente
![Page 6: Json](https://reader034.vdocumento.com/reader034/viewer/2022051821/563db97b550346aa9a9dbc47/html5/thumbnails/6.jpg)
Por fortuna, Android tiene implementado un lector de cadenas JSON…
… ¡que no vamos a utilizar! ◦ Tuve una muy mala experiencia con el JsonReader
◦ Es complicado, poco flexible…
![Page 7: Json](https://reader034.vdocumento.com/reader034/viewer/2022051821/563db97b550346aa9a9dbc47/html5/thumbnails/7.jpg)
Librerías más «tradicionales» para el procesamiento de cadenas JSON ◦ Fáciles de usar
◦ Flexibles
◦ … Aunque no son precisamente «Android»
![Page 8: Json](https://reader034.vdocumento.com/reader034/viewer/2022051821/563db97b550346aa9a9dbc47/html5/thumbnails/8.jpg)
JavaScript Object Notation
Es un formato de intercambio de datos ◦ Ligero
◦ Fácil de leer
![Page 9: Json](https://reader034.vdocumento.com/reader034/viewer/2022051821/563db97b550346aa9a9dbc47/html5/thumbnails/9.jpg)
{‘llave’: ‘valor’} ◦ Ej: {‘id’: ‘1’, ‘nombre’: ‘cymetria’, ‘latitud’: ‘-74’,
‘longitud’:’14’}
El ‘valor’ puede ser otro objeto JSON ◦ Ej: {‘lugar’: {‘id’: ‘1’, ‘nombre’: ‘cymetria’, ‘latitud’:
‘-74’, ‘longitud’:’14’}}
![Page 10: Json](https://reader034.vdocumento.com/reader034/viewer/2022051821/563db97b550346aa9a9dbc47/html5/thumbnails/10.jpg)
Dentro de la cadena JSON, pueden estar arreglos de objetos JSON ◦ {"LUGARES":[{"id":"1","nombre":"Cymetria","longitud":"-
74.05328","latitud":"4.674453"},{"id":"2","nombre":"El Corral Gourmet - Parque de la 93","longitud":"-74.04909","latitud":"4.676685"}]}
![Page 11: Json](https://reader034.vdocumento.com/reader034/viewer/2022051821/563db97b550346aa9a9dbc47/html5/thumbnails/11.jpg)
La librería org.json permite manejar cadenas JSON al convertirlas en objetos JSON (JSONObject) ◦ JSONObject object =
new JSONObject(jsonString);
![Page 12: Json](https://reader034.vdocumento.com/reader034/viewer/2022051821/563db97b550346aa9a9dbc47/html5/thumbnails/12.jpg)
Dentro de un objeto JSON se pueden obtener otros objetos JSON ◦ JSONObject lugar = object.getJSONObject(‘lugar’);
![Page 13: Json](https://reader034.vdocumento.com/reader034/viewer/2022051821/563db97b550346aa9a9dbc47/html5/thumbnails/13.jpg)
Se pueden obtener arreglos JSON de un objeto JSON ◦ JSONArray lugares = new JSONArray(object.getString(‘lugares’));