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

AndroidでJSONObjectを使ってJSONを解析する方法をわかりやすく解説

はじめに

この記事では、Androidアプリ開発においてJSONObjectクラスを使用してJSONデータを解析(パース)する方法を、実際のコード例とともにステップごとに解説します。JSONはWeb APIなどで広く使われるデータ形式であり、Android開発では必須の知識です。

手順1:新しいプロジェクトを作成する

Android Studioを開き、File → New Projectを選択して新しいプロジェクトを作成します。必要な項目をすべて入力してプロジェクトのセットアップを完了させてください。

手順2:レイアウトファイル(activity_main.xml)を編集する

res/layout/activity_main.xml に以下のコードを追加します。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        android:textStyle="bold"
        android:textSize="24sp"
        android:layout_centerInParent="true"/>
</RelativeLayout>

ここでは画面中央に表示されるTextViewを配置しています。解析結果はこのTextViewに出力されます。

手順3:MainActivity.javaにJSON解析コードを記述する

src/MainActivity.java に以下のコードを追加します。

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
import org.json.JSONException;
import org.json.JSONObject;
public class MainActivity extends AppCompatActivity {
    public static final String JSON_STRING="{\"Employee\":{\"Name\":\"Niyaz\",\"Salary\":56000}}";
    TextView textView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textView = findViewById(R.id.textView);
        try {
            JSONObject emp = (new JSONObject(JSON_STRING)).getJSONObject("Employee");
            String empName = emp.getString("Name");
            int empSalary = emp.getInt("Salary");
            String string = "Employee Name: "+empName+"\n"+"Employee Salary: "+empSalary;
            textView.setText(string);
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }
}

コードのポイント

JSONObject(JSON_STRING):文字列からJSONObjectインスタンスを生成します。
getJSONObject("Employee"):「Employee」キーに対応するネストされたオブジェクトを取得します。
getString() / getInt():キーを指定して文字列や数値の値を取り出します。
JSONException:JSON形式が不正な場合にスローされるため、try-catchで例外処理を行うことが重要です。

手順4:AndroidManifest.xmlを確認する

androidManifest.xml に以下のコードを追加します。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
    package="app.com.sample">
    <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でJSONObjectを使ってJSONを解析する方法をわかりやすく解説

まとめ

このように、Androidでは標準ライブラリのorg.jsonパッケージに含まれるJSONObjectクラスを使うことで、外部ライブラリを追加することなく簡単にJSONデータを解析できます。ネストされたオブジェクトもgetJSONObject()で階層的にたどることで柔軟に値を取得できるので、Web APIとの連携などにもぜひ活用してみてください。

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

    はじめに この記事では、AndroidアプリでJSONデータを解析(パース)する方法を、実際のコード例とともにわかりやすく解説します。JSONはWeb APIなどで広く利用されているデータ形式であり、Android開発においてその扱い方をマスターすることは非常に重要です。 ステップ1:新規プロジェクトの作成 まず、Android Studioで新しいプロジェクトを作成します。メニューから「File」→「New Project」を選択し、必要な項目をすべて入力してプロジェクトを作成しましょう。 ステップ2:レイアウトファイルの作成 次に、res/layout/activity_main.xm

  2. 【Android開発】Volleyライブラリを使ってJSONを解析する方法をステップ解説

    Volleyライブラリとは この記事では、AndroidアプリでVolleyライブラリを使用してJSONデータを解析(パース)する方法を、ステップごとにわかりやすく解説します。VolleyはGoogleが提供するHTTP通信ライブラリで、ネットワークリクエストの管理やJSONの取得・解析を少ないコード量で実現できるのが特徴です。 ステップ1:新規プロジェクトの作成 まず、Android Studioで新しいプロジェクトを作成します。メニューから「File」→「New Project」を選択し、必要な項目をすべて入力してプロジェクトを生成してください。 ステップ2:レイアウトファイル(act