JSON-Parsing-Tutorial auf Android

Manoj enjoy

Follow us on

In diesem Artikel erfahren Sie, wie Sie JSON-Parsing in Android durchführen. JSON steht für JavaScript Object Notation. Es handelt sich um ein leichtes Format, das für den Datenaustausch verwendet wird. Es basiert auf einer Teilmenge der JavaScript-Sprache (der Art und Weise, wie Objekte in JavaScript erstellt werden).

JSON basiert auf zwei Strukturen:

  • Eine Sammlung von Name/Wert-Paaren. Es wird auch als Objekt, Datensatz, Struktur, Wörterbuch, Hash-Tabelle, Schlüsselliste oder assoziatives Array bezeichnet.
  • Eine geordnete Liste von Werten. Sie wird auch als Matrix, Vektor, Liste oder Sequenz bezeichnet.

JSON-ELEMENTE:-

  1. JSON-ARRAY: In einer JSON-Datei stehen eckige Klammern ([) represents a JSON array
  2. JSON OBJECT- In a JSON file, curly bracket ({) represents a JSON object.
  3. KEY- A JSON object contains a key that is just a string. Pairs of key/value make up a JSON object.
  4. VALUE- Each key has a value that could be a string, integer or double etc.

JSON PARSING IN ANDROID:-

There are 2 types:-  JSON Array and JSON Object.

  • If JSON starts from square bracket([) then, it is JSON Array. Use getJSONArray() method for this.
  • If JSON starts from curly braces({) then, it is a JSON Object. Use getJSONObject() method for this.

EXAMPLE OF JSON FILE-(ex1.json)

{
“colors”: [
{
“color”: “black”,
“category”: “hue”,
“type”: “primary”,
“code”: {
“rgba”: [255,255,255,1]„hex“: „#000“ } }, { „color“: „white“, „category“: „value“, „code“: { „rgba“: [0,0,0,1]„hex“: „#FFF“ } }, { „color“: „red“, „category“: „hue“, „type“: „primary“, „code“: { „rgba“: [255,0,0,1]„hex“: „#FF0“ } }, { „color“: „blue“, „category“: „hue“, „type“: „primary“, „code“: { „rgba“: [0,0,255,1]„hex“: „#00F“ } }, { „color“: „gelb“, „category“: „hue“, „type“: „primary“, „code“: { „rgba“: [255,255,0,1]„hex“: „#FF0“ } }, { „color“: „green“, „category“: „hue“, „type“: „secondary“, „code“: { „rgba“: [0,255,0,1]”hexadezimal”: “#0F0” } } ]}

  • Kopieren Sie diese JSON-Struktur in eine Datei und speichern Sie sie als Ex1.json
  • Erstellen Sie einen Assets-Ordner in Android Studio wie folgt:
    • Paket von Android ändern.
    • Klicken Sie mit der rechten Maustaste auf die Anwendung > wählen Sie einen neuen Ordner > Assets > klicken Sie auf „Fertig stellen“.
  • Kopieren Sie die Datei ex1.json und fügen Sie sie in den Assets-Ordner ein.
See also  Wie kann der gefürchtete Fatal D3D 25-Fehler in Resident Evil 4 Remake behoben werden?

Android Studio Json-Codierung

In dieser JSON-Datei haben wir eine Liste von Farben, wobei jedes Objekt Informationen wie Farbe, Kategorie, Typ und verschiedene Codetypen wie RGBA und Hexadezimal enthält. Wir werden LinearLayoutManager mit vertikaler Ausrichtung verwenden, um die Array-Elemente anzuzeigen.

Zuerst deklarieren wir eine RecyclerView in unserer XML-Datei und erhalten dann ihre Referenz in unserer Aktivität. Danach rufen wir die JSON-Datei ab, analysieren dann die JSONArray-Daten und konfigurieren schließlich den Adapter für die Anzeige der Elemente in der RecyclerView. Immer wenn ein Benutzer auf ein Element klickt, wird mithilfe von Toast der Farbname auf dem Bildschirm angezeigt.

MÜSSEN LESEN: Google Maps-Tutorial in Android Studio [Step by Step]

SCHRITTE ZUM JSON-ANALYSE:-

  • Erstellen Sie eine neue Aktivität
  • Öffnen Sie gradle>build.gradle (Modul: Anwendung)

Abhängigkeiten für die Recycler-Ansicht und die Kartenansicht hinzufügen: –

Implementierung ‘com.android.support:recyclerview-v7:23.0.1’ // Abhängigkeitsdatei für RecyclerView Implementierung ‘com.android.support:cardview-v7:23.0.1’ // Abhängigkeitsdatei für CardView

main_activity.xml

In diesem Schritt erstellen wir eine RecyclerView in unserer XML-Datei.

Erstellen Sie eine weitere XML-Datei mit dem Namen „list_view.xml“.

view_list.xml

Um die Daten anzuzeigen, erstellen Sie eine Textansicht in list_view.xml

Hauptaktivität.java

In diesem Schritt erhalten wir zunächst die Referenz von RecyclerView. Danach rufen wir die JSON-Datei aus den Assets ab und analysieren die JSON-Daten mithilfe der Methoden JSONArray und JSONObject. Anschließend konfigurieren wir einen LayoutManager und konfigurieren schließlich den Adapter für die Anzeige der Elemente in der RecyclerView.

6. Paket com.example.json1; import android.support.v7.app.AppCompatActivity; android.os.Bundle importieren; android.os.Bundle importieren; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.util.Log; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; java.util.Arrays importieren; Die öffentliche Klasse MainActivity erweitert AppCompatActivity { ArrayList color = new ArrayList<>(); Anordnungsliste Kategorie = neue ArrayList<>(); Anordnungsliste hex = new ArrayList<>(); @Override protected void onCreate(Bundle saveInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // die Referenz des RecyclerView abrufen RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recyclerView); // einen LinearLayoutManager mit standardmäßiger vertikaler Ausrichtung festlegen LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getApplicationContext()); recyclerView.setLayoutManager(linearLayoutManager); try { // JSONObject aus der JSON-Datei abrufen JSONObject obj = new JSONObject(loadJSONFromAsset()); // JSONArray mit benannten Farben abrufen JSONArray userArray = obj.getJSONArray(“colors”); // eine Schleife implementieren, um Daten aus der Liste der Farben abzurufen for (int i = 0; i < userArray.length(); i++) { // ein JSONObject erstellen, um Daten aus einem einzelnen Farb-JSONObject abzurufen userDetail = userArray.getJSONObject( Yo); // findet den Namen und die Kategorie der Farbe und speichert sie in der Arrayliste color.add(userDetail.getString("color")); Category.add(userDetail.getString("Kategorie")); // ein Objekt erstellen, um Codedaten von JSONObject abzurufen JSONObject contact = userDetail.getJSONObject("code"); // findet den Hexadezimalwert und speichert ihn in der Arrayliste hex.add(contact.getString("hex")); } } Catch (JSONException e) { e.printStackTrace(); } // ruft den CustomAdapter-Konstruktor auf, um die Referenz und Daten an den Adapter zu senden Custom_adapter customAdapter = new Custom_adapter(MainActivity.this, color, Category, hex); recyclerView.setAdapter(benutzerdefinierter Adapter); // Den Adapter auf RecyclerView setzen } public String loadJSONFromAsset() { String json = null; Versuchen Sie es mit {InputStream es = getAssets().open("ex1.json"); int size = is.available(); Byte[] Puffer = neues Byte[size]; is.read(buffer); ist nah(); json = new String(buffer, „UTF-8“); } Catch (IOException ex) { ex.printStackTrace(); null zurückgeben; } return json; } }

See also  Best weapons in Starfield and how to find them

Erstellen Sie eine weitere Java-Datei mit dem Namen Custom_adapter.java

custom_adapter.java

In diesem Schritt erstellen wir eine CustomAdapter-Klasse und erweitern die RecyclerView.Adapter-Klasse um ViewHolder. Danach implementieren wir die überschriebenen Methoden und erstellen einen Konstruktor, um die Daten aus der Aktivität abzurufen. In diesem benutzerdefinierten Adapter sind zwei Methoden wichtiger: Die erste ist onCreateViewHolder, in der wir das zeichnbare XML-Element aufblasen und an View Holder übergeben, und die andere ist onBindViewHolder, in der wir die Daten in den Ansichten mithilfe von ViewHolder festlegen .

Paket com.example.json1; import android.content.Context; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; importiere android.widget.Toast; import java.util.ArrayList; Die öffentliche Klasse Custom_adapter erweitert RecyclerView.Adapter { Anordnungsliste Farbe; Kategorie ArrayList; Anordnungsliste hexadezimal; Kontextkontext; public Custom_adapter(Context context, ArrayListFarbe, ArrayList Kategorie, ArrayList hexadezimal) { this.context=context; this.color=color; this.category=Kategorie; this.hex=hexadezimal; } @Override public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { // fehlendes Layout-Ansichtselement v = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_view, parent, false); MyViewHolder vh = new MyViewHolder(v); // übergibt die Ansicht an den View Holder return vh; } @Override public void onBindViewHolder(Custom_adapter.MyViewHolder holder, final int position) { // setze die Daten auf elementsholder.color.setText(color.get(position)); holder.category.setText(category.get(position)); holder.hex.setText(hex.get(position)); // das setOnClickListener-Ereignis in der Elementansicht implementieren. holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { // beim Klicken einen Toast mit dem Farbnamen auf dem Element anzeigen Toast.makeText(context, color.get(position ), Toast.LENGTH_SHORT ).show(); } }); } @Override public int getItemCount() { return color.size(); } public class MyViewHolder erweitert RecyclerView.ViewHolder { TextView-Farbe, Kategorie, Hex; // startet den öffentlichen MyViewHolder der itemView (View itemView) { super(itemView); // Farbe der Elementansicht abrufen reference = (TextView) itemView.findViewById(R.id.color); Kategorie = (TextView) itemView.findViewById(R.id.category); hex = (TextView) itemView.findViewById(R.id.hex); } } }

Herzlichen Glückwunsch… Sie haben diese Anwendung erfolgreich erstellt.

Wenn Sie Ihre Anwendung ausführen, können Sie die unten erwähnte Schnittstelle sehen: –

See also  Heutige Wortantwort für Freitag, 22. September: Wie lautet das heutige Wort für 825?

Um auf den Code zuzugreifen, klicken Sie auf den folgenden GitHub-Link:-

GITHUB

Dies war ein einfaches Tutorial zum Parsen von JSON in einer Android-Anwendung mithilfe der Recycler-Ansicht und der Kartenansicht.

Ich hoffe, Ihnen hat dieser Artikel gefallen. Für weitere Artikel dieser Art … bleiben Sie dran!!!! Bei Fragen hinterlassen Sie bitte unten einen Kommentar.

Categories: Guides
Source: javiko.edu.vn

Madhuri Shetty
Manoj Gadtaula

Manoj Gadtaula is a young Indian man from Mangalore who is constantly on the lookout for new things and loves to explore. Madhuri has a great passion for helping others and motivating people. She researched the careers, biographies, lifestyles, and net worths of celebrities..

Leave a comment

Demo
Demo 2