【Android】GSONライブラリを使ってHashMapをJSONに変換する方法
GSONはGoogleが提供するJava向けライブラリで、JavaオブジェクトをJSONへ、あるいはJSONをオブジェクトへ相互に変換するために使われます。内部ではシリアライズ(直列化)とデシリアライズ(復元)の仕組みによって動作しています。
この記事では、GSONライブラリを使用してAndroidアプリ内でHashMapをJSON形式に変換する方法を、ステップごとにわかりやすく解説します。
ステップ1:新規プロジェクトを作成する
まず、Android Studioで新しいプロジェクトを作成します。メニューバーから「File」⇒「New Project」を選択し、必要な項目をすべて入力してプロジェクトを作成しましょう。
ステップ2:build.gradleにGSONを追加する
次に、build.gradleファイルに以下のコードを追加します。
apply plugin: 'com.android.application'
android {
compileSdkVersion 28
defaultConfig {
applicationId "com.example.andy.myapplication"
minSdkVersion 15
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.google.code.gson:gson:2.8.5'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}
上記コードのdependenciesブロック内で、最新版のGSONライブラリ(gson:2.8.5)を依存関係として追加しています。これによりGSONの各種APIがプロジェクト内で利用可能になります。
ステップ3:レイアウトファイル(activity_main.xml)を編集する
res/layout/activity_main.xmlに以下のコードを記述します。
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
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/result"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Result Data"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
このレイアウトにはTextViewを1つ配置しており、画面中央に変換後のJSONデータを表示する役割を持たせています。
ステップ4:MainActivity.javaを実装する
src/MainActivity.javaに以下のコードを追加します。
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.Toast;
import com.google.gson.Gson;
import java.util.ArrayList;
import java.util.HashMap;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView result=findViewById(R.id.result);
HashMap<String,String> hashMap=new HashMap<>();
hashMap.put("JAVA","NetBeans");
hashMap.put("Android","Android Studio");
hashMap.put("Kotlin", "Notepad ++");
Gson gson=new Gson();
String MapData=gson.toJson(hashMap);
result.setText(MapData);
}
}
処理の流れはシンプルです。まずHashMapにキーと値のペアを3つ登録し、次にGsonインスタンスを生成してtoJson()メソッドに渡すだけです。これだけでHashMapがJSON文字列へ変換され、その結果をTextViewにセットして表示しています。
アプリを実行して結果を確認する
それでは実際にアプリを起動してみましょう。ここでは、実機のAndroidスマートフォンをパソコンに接続済みであることを前提とします。Android Studioでプロジェクトのアクティビティファイルを開き、ツールバーの「Run」アイコンをクリックしてください。
表示された候補の中から接続したモバイル端末を選択すると、スマートフォン側に以下のような画面が表示されます。

出力結果を見ると、HashMapの内容が正しくJSON形式のデータに変換されて表示されていることが確認できます。このようにGSONを使えば、わずか数行のコードでマップ型のデータを簡単にJSON化できるため、API通信やデータ保存などさまざまな場面で活用できます。
-
AndroidでJSON配列を反復処理する方法をステップごとに解説
この記事では、Androidアプリ開発においてJSON配列(JSONArray)を反復処理する方法を、実際のサンプルコードとともにステップ形式で解説します。org.jsonパッケージのJSONObjectとJSONArrayクラスを使用して、JSON文字列からデータを取り出し、画面に表示するまでの一連の流れを学べます。完成イメージ本チュートリアルでは、従業員情報(ID・名前・給与)を含むJSON文字列を解析し、各要素を順番に読み取ってTextViewに表示するシンプルなアプリを作成します。手順1:Android Studioで新規プロジェクトを作成するまず、Android Studioを起動し
-
AndroidでOCRを使って画像をテキストに変換する方法【おすすめアプリ2選】
OCR(光学文字認識)技術はここ数年で大きく進化し、画像からテキストをかなり高精度で読み取れるようになりました。スマートフォン1台で画像内の文字をそのままテキスト化できれば、わざわざパソコンに画像を転送してオンラインで変換する手間が省け、とても便利です。この記事では、Androidデバイスを使って画像をテキストに変換する方法をご紹介します。 Androidで画像をテキストに変換する方法 Google PlayストアにはOCR対応アプリが数多く公開されていますが、すべてが期待通りの精度を発揮するわけではありません。さまざまなアプリを実際に検証した結果、特に高い精度を実現していたのがMicros