JSON Parsing Android con JSONObject e Java

In questa guida al JSON Parsing in Android scoprirai come leggere e gestire dati in formato JSON all’interno delle tue app, così da poter consumare facilmente API e servizi web moderni. Capire come funziona il parsing JSON è fondamentale per mostrare contenuti aggiornati, sincronizzare informazioni da server remoti e integrare funzionalità online. Gli esempi che troverai di seguito sono scritti in Java e sviluppati con Android Studio, così potrai seguirli e adattarli ai tuoi progetti reali. Continua a leggere per vedere passo dopo passo come estrarre valori da un oggetto JSON e visualizzarli nella tua interfaccia Android, così da padroneggiare al meglio il JSON Parsing Android.

JSON sta per Java Script Object Notation ed
è un formato leggero per lo scambio di dati,
quindi consente di memorizzare oggetti JavaScript come testo.
I dati JSON vengono scritti come coppie nome/valore costituita da un nome di campo (tra virgolette doppie), seguito da due punti, seguiti da un valore:
“name”:”Symon”
Android fornisce quattro classi diverse per manipolare i dati JSON. Queste classi sono JSONObject, JSONArray, JSONStringer e JSONTokenizer.
Per analizzare un oggetto JSON, creeremo un oggetto JSONObject e specificheremo una stringa contenente dati JSON.

Main Java:
package com.example.jsonParsing.activities;

import android.app.Activity;
import android.os.Bundle;
import com.example.jsonParsing.R;
import android.widget.*;
import android.view.*;
import org.json.*;

public class MainActivity extends Activity {
private TextView txv;
Button btn;

String jsonSTRING= “{\”student\”:{ \”id\”:\”1\”,\”name\”:\”Symon\”,\”age\”:\”30\”,\”address\”:\”Roma\”,\”country\”:\”Italy\”}}”;
String name,age,address,country;

int id;

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

txv = findViewById ( R.id.txv) ;


        btn = findViewById(R.id.button);


btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {


try {
JSONObject object = new JSONObject(jsonSTRING);
JSONObject student=object.getJSONObject(“student”);

name=student.getString(“name”);

age=student.getString(“age”);

address=student.getString(“address”);

country=student.getString(“country”);

id=student.getInt(“id”);
  String string=(“Student:”+id+”\n” +name+”\n”+age+”\n”+address+”\n”+country);
txv.setText(string);
       }catch (Exception e){
e.printStackTrace();
}

}

Consigli pratici per il JSON Parsing Android

Come consiglio pratico, inizia sempre con JSONObject per comprendere bene come funziona il parsing JSON a basso livello, poi passa a Gson o Jackson quando le tue necessità diventano più complesse. Inoltre, ricorda sempre di racchiudere il codice di parsing in blocchi try-catch per gestire le eccezioni JSONException, poiché errori nei dati o nel formato possono facilmente causare crash dell’applicazione. Per gestire le chiamate di rete che restituiscono dati JSON, ti consigliamo di leggere anche la nostra guida su Thread Android in Android Studio.

  });
}
 
}

JSONObject è la scelta ideale quando lavori con dati JSON semplici e di piccole dimensioni direttamente in Android, poiché è incluso nel framework standard della piattaforma e non richiede dipendenze esterne aggiuntive. Questo vantaggio lo rende particolarmente adatto per progetti che necessitano di ridurre il peso dell’applicazione o quando vuoi evitare complicazioni nella gestione delle librerie. Per maggiori dettagli sulle sue API, puoi consultare la documentazione ufficiale di Android su JSONObject. Tuttavia, se il tuo progetto comporta la serializzazione e deserializzazione di oggetti Java complessi e annidati, potresti valutare l’uso di alternative come Gson o Jackson: queste librerie offrono una maggiore flessibilità e semplificano il mapping automatico tra JSON e classi Java, riducendo il codice boilerplate.

Main XML:
<?xml version=”1.0″ encoding=”utf-8″?>
<LinearLayout
xmlns:android=”http://schemas.android.com/apk/res/android&#8221;
android:layout_width=”match_parent”
android:layout_height=”match_parent”
android:gravity=”center”
android:orientation=”vertical”>
<Button
android:id=”@+id/button”
android:text=”Json”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”/>

<TextView
android:id=”@+id/txv”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”/>

</LinearLayout>