JSON (Notación de objetos de JavaScript) es un formato de intercambio de datos sencillo para intercambiar los datos del servidor y es una mejor alternativa para XML . Esto se debe a que JSON es un lenguaje ligero y estructurado. Android admite todas las clases JSON, como JSONStringer, JSONObject, JSONArray y todas las demás formas para analizar los datos JSON y obtener la información requerida por el programa. La principal ventaja de JSON es que es independiente del idioma y el objeto JSON contendrá datos como un par clave/valor. En general, los Nodes JSON comenzarán con un corchete ([) o con un corchete ({) . La principal diferencia entre el corchete cuadrado y el corchete es que el corchete ([)representa el comienzo de un Node JSONArray . Mientras que el corchete ({) representa un JSONObject . Entonces, uno debe llamar al método apropiado para obtener los datos. A veces, los datos JSON comienzan con [. Luego necesitamos usar el método getJSONArray() para obtener los datos. De manera similar, si comienza con {, entonces necesitamos usar el método getJSONobject() . La sintaxis del archivo JSON es la siguiente:
{ "Name": "GeeksforGeeks", "Estd": 2009, "age": 10, "address": { "buildingAddress": "5th & 6th Floor Royal Kapsons, A- 118", "city": "Sector- 136, Noida", "state": "Uttar Pradesh (201305)", "postalCode": "201305" },
En este artículo, analizaremos un archivo JSON en Android. kotlin
Implementación paso a paso
Para analizar un archivo JSON en Android, siga los siguientes pasos:
Paso 1: Crear un nuevo proyecto
Para crear un nuevo proyecto en Android Studio, consulte Cómo crear/iniciar un nuevo proyecto en Android Studio . Tenga en cuenta que seleccione Kotlin como lenguaje de programación.
Paso 2: trabajar con el archivo activity_main.xml
Vaya al archivo activity_main.xml que representa la interfaz de usuario de la aplicación. Cree un ListView como se muestra. actividad_principal.xml
XML
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <!--This listView will display the list items--> <ListView android:id="@+id/user_list" android:layout_width="fill_parent" android:layout_height="wrap_content" android:dividerHeight="1dp" /> </LinearLayout>
Paso 3: Cree otro archivo de recursos de diseño
Vaya a aplicación > res > diseño > haga clic con el botón derecho en > Nuevo > Archivo de recursos de diseño y cree otro diseño list_row.xml para mostrar los datos en ListView . lista_fila.xml
XML
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:padding="5dip"> <!--TextView to display the name--> <TextView android:id="@+id/name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="17dp" android:textStyle="bold" /> <!--TextView to display the designation--> <TextView android:id="@+id/designation" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/name" android:layout_marginTop="7dp" android:textColor="#343434" android:textSize="14dp" /> <!--TextView to display the location--> <TextView android:id="@+id/location" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/designation" android:layout_alignBottom="@+id/designation" android:layout_alignParentRight="true" android:textColor="#343434" android:textSize="14dp" /> </RelativeLayout>
Paso 4: trabajar con el archivo MainActivity.kt
Vaya al archivo MainActivity.kt y consulte el siguiente código. A continuación se muestra el código del archivo MainActivity.kt . Se agregan comentarios dentro del código para comprender el código con más detalle.
Kotlin
import android.os.Bundle import android.util.Log import android.widget.ListAdapter import android.widget.ListView import android.widget.SimpleAdapter import androidx.appcompat.app.AppCompatActivity import org.json.JSONException import org.json.JSONObject import java.util.* class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) // private string declare in the latter section of the program val jsonStr = listData try { // Create a userList string hashmap arraylist val userList = ArrayList<HashMap<String, String?>>() // Declaring the listView from the layout file val lv = findViewById<ListView>(R.id.user_list) // Initializing the JSON object and extracting the information val jObj = JSONObject(jsonStr) val jsonArry = jObj.getJSONArray("users") for (i in 0 until jsonArry.length()) { val user = HashMap<String, String?>() val obj = jsonArry.getJSONObject(i) user["name"] = obj.getString("name") user["designation"] = obj.getString("designation") user["location"] = obj.getString("location") userList.add(user) } // ListAdapter to broadcast the information to the list elements val adapter: ListAdapter = SimpleAdapter( this, userList, R.layout.list_row, arrayOf("name", "designation", "location"), intArrayOf( R.id.name, R.id.designation, R.id.location ) ) lv.adapter = adapter } catch (ex: JSONException) { Log.e("JsonParser Example", "unexpected JSON exception", ex) } } // JSON object in the form of input stream private val listData: String get() = ("{ \"users\" :[" + "{\"name\":\"Ace\",\"designation\":\"Engineer\",\"location\":\"New York\"}" + ",{\"name\":\"Tom\",\"designation\":\"Director\",\"location\":\"Chicago\"}" + ",{\"name\":\"Tim\",\"designation\":\"Charted Accountant\",\"location\":\"Sunnyvale\"}] }") }
Salida: ejecutar en el emulador
Publicación traducida automáticamente
Artículo escrito por aashaypawar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA