Вы находитесь на странице: 1из 8

JSON en Android

1. Qu es JSON?
Es el acrnimo en ingls de JavaScript Object Notation, es un formato ligero para el
intercambio de datos en aplicaciones web. JSON tiene la ventaja de que no requiere el
uso de XML. (Sacristn, 2012)
JSON (JavaScript Object Notation) es un formato de intercambio de datos ligero. Es fcil
para los seres humanos a leer y escribir. Es fcil para las mquinas para analizar y
generar. Se basa en un subconjunto del lenguaje de programacin JavaScript, estndar
ECMA-262 3rd Edition - 12 1999 JSON es un formato de texto que es completamente
independiente del lenguaje pero utiliza convenciones que son familiares para los
programadores de la C - familia de lenguajes, incluyendo C, C + +, C #, Java, JavaScript,
Perl, Python, y muchos otros. Estas propiedades hacen de JSON un lenguaje ideal-el
intercambio de datos.
2. Valores JSON
Los tipos de valores en JSON son los siguientes:
Un string (entre comillas simples)
Un nmero (entero o float)
Un booleano (true o false)
Un objeto (entre llaves {} )
Un array (entre corchetes [] )
Null
3. Mtodos JSON
get (String name): Devuelve el valor en la forma de tipo Object.
getInt (String name): Devuelve el valor entero especificado por la clave.
getLong (String name): Devuelve valor entero largo especificado por la clave.
getDouble (String name): Devuelve el valor doble especificado por la clave.
getString (String name): Devuelve el valor en la forma de tipo String.
getBoolean (String name): Devuelve el valor booleano especificado por la clave.
length(): Devuelve el nmero de asignaciones de nombre / valor en este objeto.



4. Clases que proporciona Java
JSONArray
JSONObject
JSONStringer
JSONTokenizer
5. Demostracin 1 (Uso de JSON en Java):
Esta demostracin se basa en cmo utilizar las clases JSONObject y JSONArray para
agregar y quitar elementos a una cadena con formato JSON.
Paso 1. Crear una aplicacin Android
1.1) Creacin de una aplicacin Android:
File
New
Android Application Project

Figura 1: Crear aplicacin Android (men File)




Ingresar el nombre para la aplicacin:

Figura 2: Crear aplicacin: Ingresar el nombre
Clic en siguiente:

Figura 3: Clic en siguiente


Establecer el icono (lo dejaremos por defecto):

Figura 4: Establecer icono
Crear una actividad en blanco:

Figura 5: Crear actividad en blanco



Ingresar el nombre para la actividad:

Figura 6: Ingresar nombre para la actividad y clic en Finish
1.2) Ya tenemos nuestra aplicacin creada con una actividad en blanco:

Figura 7: Aplicacin Android creada y lista para programar


Paso 2. Disear la aplicacin Android
2.1) Disear en el archivo activity_main.xml lo siguiente:

Figura 8: Diseo de la actividad
Paso 3. Programar la aplicacin:
3.1) Programar en el MainActivity.java lo siguiente:

package com.usp.jsoncadena;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;




Aqu va un TextView, pero sin texto
EditText
ID: etCodigo
ID: etNombre
ID: etAutor
TextView
ID: tvTitulo
ID: tvCodigo
ID: tvLibro
ID: tvAutor






ID: tvAlerta
ID: tvMostrar
ID: tvResultado



Button
ID: btnAgregar
ID: btnNuevo
ID: btnQuitar



public class MainActivity extends Activity {

EditText etNombre;
EditText etAutor;
EditText etCodigo;
Button btnAgregar;
TextView tvResultado;
Button btnNuevo;
Button btnQuitar;

JSONArray lista = new JSONArray();

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

// Referencia a las vistas
etNombre = (EditText) findViewById(R.id.etNombre);
etAutor = (EditText) findViewById(R.id.etAutor);
etCodigo = (EditText) findViewById(R.id.etCodigo);
btnAgregar = (Button) findViewById(R.id.btnAgregar);
etAutor = (EditText) findViewById(R.id.etAutor);
tvResultado = (TextView) findViewById(R.id.tvResultado);
btnNuevo = (Button) findViewById(R.id.btnNuevo);
btnQuitar = (Button) findViewById(R.id.btnQuitar);

// Codigo para agregar un elemento a una cadena JSON
btnAgregar.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {

JSONObject obj = new JSONObject();
String codigo, nombre, autor;
nombre = etNombre.getText().toString();
autor = etAutor.getText().toString();
codigo = etCodigo.getText().toString();

try {
obj.put("Autor", autor);
obj.put("Nombre", nombre);
obj.put("Codigo", codigo);
lista.put(obj);

} catch (JSONException e) {
e.printStackTrace();
}

tvResultado.setText(lista.toString());
}
});








// Codigo para quitar un elemento de una cadena JSON
btnQuitar.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {

String codigo;
codigo = etCodigo.getText().toString();

// llenar otro json excluyendo segun el codigo:
JSONArray aux = new JSONArray();
try {

for (int i = 0; i < lista.length(); i++) {
JSONObject obj2 = lista.getJSONObject(i);

if (!obj2.getString("Codigo").equals(codigo)) {
aux.put(obj2);
}
}
lista = new JSONArray();
lista = aux;
tvResultado.setText(lista.toString());
} catch (JSONException e) {
e.printStackTrace();
}
}
});

// Codigo para limpiar las vistas
btnNuevo.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
etNombre.setText("");
etAutor.setText("");
etCodigo.setText("");
}
});
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

}

Вам также может понравиться