Android JSON-parser Tutorial

JSON står for Javascript Object Notation.It er en uavhengig datautvekslingsformat og er det beste alternativet for XML. Dette kapittelet forklarer hvordan å analysere den JSON filen og pakke nødvendig informasjon fra den.

Android gir fire ulike klasser for å manipulere JSON data. Disse klassene er JSONArray, JSONObject, JSONStringer og JSONTokenizer.

er det første skrittet for å identifisere de feltene i JSON data som du er interessert i. For eksempel. I JSON gitt nedenfor vi interessert i å få bare temperatur product: {"sys":. {"Country": "GB", "soloppgang": 1381107633, "solnedgang": 1381149604}, "vær": [{"id ": 711," main ":" Smoke "," description ":" røyk "," icon ":" 50N "}]," main ": {" temp ": 304,15," press ": 1009,}} < h2> JSON - Elements

En JSON-fil består av mange komponenter. Her er en tabell som definerer komponentene i en JSON fil og deres beskrivelse og minus;
Sr.NoComponent &Co. description1 Array ([)

I en JSON-fil, hakeparentes ([) representerer en JSON rekke
2 Objekter ({)

I en JSON-fil, krøllete brakett ({) representerer en JSON objekt
3 Key

En JSON objekt inneholder en nøkkel som er bare en streng. Par av nøkkel /verdi utgjør en JSON objekt
4 Verdi

Hver tast har en verdi som kan være streng, heltall eller dobbel etc

JSON - Parsing

For parsing en JSON objekt, vil vi opprette et objekt av klassen JSONObject og angi en streng som inneholder JSON data til det. Syntaksen er:
String inn; JSONObject leser = new JSONObject (i);

Det siste trinnet er å analysere JSON. En JSON-fil består av ulike objekt med annen nøkkel /verdi-par e.t.c. Så JSONObject har en egen funksjon for parsing hver av komponenten av JSON-fil. Syntaksen er gitt nedenfor:
JSONObject sys = reader.getJSONObject ("sys"); country = sys.getString ("land"); JSONObject hoved = reader.getJSONObject ("main"); temperatur = main.getString ("temp");

Metoden getJSONObject
returnerer JSON objekt. Metoden getString
returnerer strengen verdien av den angitte nøkkelen.

Bortsett fra disse metodene, det finnes andre metoder som tilbys av denne klassen for bedre parsing JSON-filer. Disse metodene er listet nedenfor −
Sr.NoMethod & description1 get (String navn)

Denne metoden bare Returnerer verdi, men i form av Objekttype
2 getBoolean (String navn)

Denne metoden returnerer boolsk verdi spesifisert av nøkkelen
3 getDouble (String navn)

Denne metoden returnerer den doble verdien angitt av nøkkelen
4 getInt (String navn)
< p> Denne metoden returnerer heltallsverdien spesifisert av nøkkelen
5 getLong (String navn)

Denne metoden returnerer lenge verdien angitt av nøkkelen
6 length ()

Denne metoden returnerer antall navn /verdi-kartlegginger i dette objektet ..
7 navnene ()

Denne metoden returnerer en matrise som inneholder de strengnavn i dette objektet.

Eksempel

For å eksperimentere med dette eksemplet, kan du kjøre dette på en faktisk enhet eller i en emulator.
StepsDescription1You vil bruke Android studio for å lage en Android-applikasjon. Mens du oppretter dette prosjektet, må du Target SDK og kompilere med på den nyeste versjonen av Android SDK til å bruke høyere nivåer av APIer.
2Modify src /MainActivity.java fil for å legge nødvendig code.3Modify res /layout /activity_main til legge respektive XML components4Modify res /verdier /string.xml å legge nødvendig streng components5Run programmet og velge en som kjører Android-enhet, og installere programmet på den og verifisere resultatene

Følgende er innholdet i den modifiserte hovedaktivitet fil src /MainActivity.java
.
pakken com.tutorialspoint.json, import android.app.Activity, import android.os.StrictMode, import android.support.v7.app.ActionBarActivity, import android.os.Bundle, import android.util.Log; import android.view.Menu, import android.view.MenuItem, import android.widget.Button, import android.widget.TextView, import org.apache.http.HttpEntity, import org.apache.http.HttpResponse; import org.apache. http.StatusLine, import org.apache.http.client.ClientProtocolException, import org.apache.http.client.HttpClient, import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client. DefaultHttpClient, import org.json.JSONArray, import org.json.JSONException, import org.json.JSONObject, import java.io.BufferedReader, import java.io.IOException, import java.io.InputStream; import java.io.InputStreamReader; public class MainActivity strekker Aktivitet {public void onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); TextView output = (TextView) findViewById (R.id.textView1); String strJson = "{\\" Employee \\ ": [{\\" id \\ ": \\" 01 \\ ", \\" navn \\ ": \\" Gopal Varma \\ ", \\" lønn \\ ": \\" 500000 \\ "} {\\ "id \\": \\ "02 \\", \\ "navn \\": \\ "Sairamkrishna \\", \\ "lønn \\": \\ "500000 \\"}, {\\ "id \\": \\ "03 \\ ", \\" navn \\ ": \\" Sathish kallakuri \\ ", \\" lønn \\ ": \\" 600000 \\ "}]}"; String data = ""; try {JSONObject jsonRootObject = new JSONObject (strJson); //Få forekomsten av JSONArray som inneholder JSONObjects JSONArray jsonArray = jsonRootObject.optJSONArray ("Ansatt"); //Reagere på jsonArray og skrive ut informasjon fra JSONObjects for (int i = 0; i < jsonArray.length (); i ++) {JSONObject jsonObject = jsonArray.getJSONObject (i); int id = Integer.parseInt (jsonObject.optString ("id") toString ().); String name = jsonObject.optString ("navn") toString ().; flyte lønn = Float.parseFloat (. jsonObject.optString ("lønn") toString ()); data + = "Node" + i + ": \\ n id =" + id + "\\ n Name =" + navn + "\\ n Lønn =" + lønn + "\\ n"; } Output.setText (data); } Catch (JSONException e) {e.printStackTrace ();}}}

Følgende er endret innholdet i xml res /layout /activity_main.xml
< RelativeLayout xmlns:. Android = "http://schemas.android.com/apk/res/android~~number=plural" xmlns: verktøy = "http://schemas.android.com/tools" android: layout_width = "match_parent" android: layout_height = "match_parent" android : paddingLeft = "@ dimen /activity_horizontal_margin" android: paddingRight = "@ dimen /activity_horizontal_margin" android: paddingTop = "@ dimen /activity_vertical_margin" android: paddingBottom = "@ dimen /activity_vertical_margin" verktøy: kontekst = ". MainActivity" > < TextView android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: text = "JSON eksempel" android: id = "+ id /textView" android: layout_alignParentTop = "true" android: layout_centerHorizontal = "true" android: Tekststørrelse = "30dp" /> < TextView android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: text = "Guider Point" android: id = "+ id /textView2" android: layout_below = "+ id /textView" android: layout_centerHorizontal = "true" android: Tekststørrelse = "35dp" android: textcolor = "# ff16ff01" /> < TextView android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: text = "Ny tekst" android: id = "+ id /textView1" android: layout_below = "+ id /textView2" android: layout_alignParentLeft = "true" android: layout_alignParentStart = "true" android: layout_alignParentRight = "true" android: layout_alignParentEnd = "true" /> < /RelativeLayout >

Følgende er innholdet i AndroidManifest.xml Anmeldelser .? fil
< xml version = "1.0" encoding = "utf-8" > < manifest xmlns:? android = "http://schemas.android.com/apk/res/android" pakke = "com.example.sairamkrishna.myapplication" > < bruker-tillatelse android: name = "android.permission.INTERNET" /> < søknad android: allowBackup = "true" android: icon = "@ Mipmap /ic_launcher" android: label = "@ streng /APP_NAME" android: tema = "@ stil /AppTheme" > < aktivitet android: ". MainActivity" name = android: label = "@ streng /APP_NAME" > < intent-filter > < handling android: name = "android.intent.action.MAIN" /> < kategori android: name = "android.intent.category.LAUNCHER" /> < /intent-filter > < /aktivitets > < /søknad > < /manifest >

La oss prøve å kjøre vår søknad vi bare endret. Jeg antar at du hadde laget ditt AVD
mens du gjør oppsett miljø. For å kjøre programmet fra Android studio, åpne en av prosjektets aktivitets filer, og klikk Kjør ikonet fra verktøylinjen. Android studio installerer programmet på AVD og starter den, og hvis alt er bra med oppsettet og søknad, vil det vise følgende Emulator vindu:

Over Eksempel som viser data fra strengen json, har dataene arbeidsgiver detaljer samt lønn informasjon