Android
 Computer >> コンピューター >  >> プログラミング >> Android

AndroidでJSONを解析する方法を徹底解説!初心者向けステップバイステップガイド

はじめに

この記事では、AndroidアプリでJSONデータを解析(パース)する方法を、実際のコード例とともにわかりやすく解説します。JSONはWeb APIなどで広く利用されているデータ形式であり、Android開発においてその扱い方をマスターすることは非常に重要です。

ステップ1:新規プロジェクトの作成

まず、Android Studioで新しいプロジェクトを作成します。メニューから「File」→「New Project」を選択し、必要な項目をすべて入力してプロジェクトを作成しましょう。

ステップ2:レイアウトファイルの作成

次に、res/layout/activity_main.xmlに以下のコードを追加します。ここでは、従業員の名前と給与を画面に表示するための2つのTextViewを配置しています。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:app="https://schemas.android.com/apk/res-auto"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
    <TextView
        android:id="@+id/tvName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="50dp"
        android:text="Name"
        android:textColor="#000"
        android:textSize="20sp" />
    <TextView
        android:id="@+id/tvSalary"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="80dp"
        android:text="Salary"
        android:textColor="#000"
        android:textSize="20sp" />
</RelativeLayout>

ステップ3:MainActivity.javaの実装

src/MainActivity.javaに以下のコードを追加します。このコードでは、org.jsonパッケージに含まれるJSONObjectクラスを使用して、JSON文字列を解析しています。

package com.example.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
import org.json.JSONException;
import org.json.JSONObject;
public class MainActivity extends AppCompatActivity {
    String JSON_STRING="{\"employee\":{\"name\":\"John Smith\",\"salary\":65000}}";
    String name, salary;
    TextView employeeName, employeeSalary;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // TextViewへの参照を取得
        employeeName=(TextView) findViewById(R.id.tvName);
        employeeSalary=(TextView) findViewById(R.id.tvSalary);
        try {
            // JSON文字列からJSONObjectを生成
            JSONObject obj=new JSONObject(JSON_STRING);
            // 「employee」という名前のJSONObjectを取得
            JSONObject employee=obj.getJSONObject("employee");
            // 従業員の名前と給与を取得
            name=employee.getString("name");
            salary=employee.getString("salary");
            // 取得した値をTextViewにセット
            employeeName.setText("Name: "+name);
            employeeSalary.setText("Salary: "+salary);
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }
}

コードのポイント

  • JSONObjectの生成: JSON文字列をコンストラクタに渡すことで、JSONObjectインスタンスを作成できます。
  • ネストされたオブジェクトの取得: getJSONObject()メソッドを使えば、「employee」のように入れ子になったオブジェクトへアクセスできます。
  • 値の取り出し: getString()メソッドでキーに対応する文字列値を取得します。
  • 例外処理: JSONの形式が不正な場合に備え、JSONExceptionをtry-catchブロックで適切に処理することが重要です。

ステップ4:AndroidManifest.xmlの確認

manifests/AndroidManifest.xmlが以下のようになっていることを確認してください。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android" package="com.example.myapplication">
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

アプリの実行

それでは、アプリケーションを実行してみましょう。ここでは、実際のAndroid端末をパソコンに接続しているものとします。Android Studioからアプリを実行するには、プロジェクト内のいずれかのアクティビティファイルを開き、ツールバーの「Run」アイコンをクリックします。実行デバイスとして自分のモバイル端末を選択すると、端末に以下のような画面が表示されます。

AndroidでJSONを解析する方法を徹底解説!初心者向けステップバイステップガイド

まとめ

今回は、AndroidでJSONを解析する基本的な方法を紹介しました。org.jsonパッケージのJSONObjectクラスを使えば、追加ライブラリなしで手軽にJSONデータを処理できます。ただし、より複雑なJSON構造や大量のデータを扱う場合は、GsonMoshiといった専用ライブラリの活用も検討するとよいでしょう。ぜひ本記事のコードを参考に、ご自身のプロジェクトでも試してみてください。

  1. 【Android】TextViewでテキストを両端揃え(ジャスティファイ)表示する方法

    概要 本記事では、AndroidアプリのTextViewに表示するテキストを両端揃え(ジャスティファイ)にする方法を、サンプルコードとともにわかりやすく解説します。 TextViewで両端揃えを実現するには、android:justificationMode=inter_wordを指定するだけです。この機能はAndroid 8.0(APIレベル26)以降で有効になるため、それ以前のOSバージョンでは無視される点に注意してください。 手順1:新規プロジェクトを作成する まず、Android Studioを起動し、メニューから「File」⇒「New Project」を選択します。必要な項目をす

  2. AndroidでJSON配列を反復処理する方法をステップごとに解説

    この記事では、Androidアプリ開発においてJSON配列(JSONArray)を反復処理する方法を、実際のサンプルコードとともにステップ形式で解説します。org.jsonパッケージのJSONObjectとJSONArrayクラスを使用して、JSON文字列からデータを取り出し、画面に表示するまでの一連の流れを学べます。完成イメージ本チュートリアルでは、従業員情報(ID・名前・給与)を含むJSON文字列を解析し、各要素を順番に読み取ってTextViewに表示するシンプルなアプリを作成します。手順1:Android Studioで新規プロジェクトを作成するまず、Android Studioを起動し