【Java入門】JSONObject(外部ライブラリ)でJSON形式のデータ・ファイル操作

スポンサーリンク

こんにちは!しーま(@s59shima)です。

いつもブログをご覧いただきありがとうございます。

この記事では、こんな疑問を持った人に向けて記事を書きました。

読者
読者

もっと簡単にJSONデータを操作できる方法はある!?

自力でコードを書いてみたけど、なかなか上手くいかなかった方、外部ライブラリの実際の使い方を知りたい方 におすすめです。

JSONObject の活用

外部ライブラリの選択肢として以下の2つあります。

  • net.sf.json.JSONObject
  • org.json.JSONObject

【net.sf.json.JSONObject】を使用する場合、他にも複数の外部ライブラリが必要になります。

なので、今回は【org.json.JSONObject】を使用することにします。

使用方法はとても簡単です。

外部ライブラリをダウンロードし、対象のJavaプロジェクトにクラスパスを設定するだけです!

それでは、さっそくやっていきましょう!

JSONObject を使用する前に

開発環境はEclipseを使用します。

まずはEclipseでのクラスパス設定方法から始めますね。

しーま
しーま

Eclipseの環境構築については下記も参考にどうぞ!

■対象のJavaプロジェクト(添付画像では「JavaSample」)を右クリックします。

■メニューより一番下の「プロパティー」をクリックします。

■プロパティ画面が表示されたら左メニューより「Javaのビルド・パス」をクリックします。

次に [ライブラリ]タブ ⇒ [クラスパス]を選択 ⇒ [外部JARの追加]をクリックします。

■org.json.JSONObjectクラスが含まれるjarファイル(json-XXXXXXXX.jar)を指定します。

■クラスパスに「json-XXXXXXXX.jar」が追加されたことを確認したら、「適用して閉じる」をクリックします。

参照ライブラリに追加したjarファイルが表示されたら、設定は完了になります。

実際に「json-20190722.jar」の中身を確認してみましょう。(※補足)

23個のクラスファイルが存在していることがわかります。

本記事ではその中から「JSONObject.class」「JSONArray.class」を主に解説していきます。

\登録無料!60秒で登録できる!/

首都圏の求人に特化!
正社員並みの保障は魅力です!

JSON形式のデータ操作

JSONデータを操作

JSONデータの作成

JSONObjectを使用してJSON形式のデータを作成していきましょう。

JSONObjectのインスタンスを生成し、データを追加していきましょう。

サンプルソースコードは以下になります。

import org.json.JSONObject;

public class Test {
  public static void main(String[] args) {
    JSONObject json = new JSONObject();
    json.put( "from", "shima" );
    json.put( "age", 30 );
    json.put( "male", true );
    String[] code = {"java", "javascript", "php"};
    json.put( "programming", code );
    System.out.println( json );
  }
}

実行結果は以下のようになります。JSON形式のデータが作成されていることが分かります。

{"from":"shima","programming":["java","javascript","php"],"age":30,"male":true}

String型配列の部分を JSONArray に変更して使用することも可能です。

String[] code = {"java", "javascript", "php"};

JSONArray array = new JSONArray();

に変更した場合です。サンプルのソースコードはこちらになります。

import org.json.JSONArray;
import org.json.JSONObject;

public class Test {
  public static void main(String[] args) {
    JSONObject json = new JSONObject();
    json.put( "from", "shima" );
    json.put( "age", 30 );
    json.put( "male", true );
    JSONArray array = new JSONArray();
    array.put("java");
    array.put("javascript");
    array.put("php");
    json.put( "programming", array );
    System.out.println( json );
  }
}

実行結果は以下の通りになります。

{"from":"shima","programming":["java","javascript","php"],"age":30,"male":true}

JSONArray を使用した場合、実行結果も同じになりますね。

JSONデータの取得

次はデータの取得方法についてみていきましょう。

import org.json.JSONArray;
import org.json.JSONObject;

public class Test {
  public static void main(String[] args) {
    JSONObject json = getJsonData();

    String from = json.getString( "from" );
    int age = json.getInt( "age" );
    boolean male = json.getBoolean( "male" );
    JSONArray programming = json.getJSONArray( "programming" );

    System.out.println( from + " " + age + " " + male + " " + programming );
  }

  static JSONObject getJsonData () {
    JSONObject json = new JSONObject();
    JSONArray array = new JSONArray();
    json.put( "from", "shima" );
    json.put( "age", 30 );
    json.put( "male", true );
    array.put("java");
    array.put("javascript");
    array.put("php");
    json.put( "programming", array );
    return json;
  }
}

JSON形式のデータを取得する場合、8~11行目あたりで「getXXX()」という形で取得できることがわかります。

実行結果は以下の通りになります。

shima 30 true ["java","javascript","php"]

JSON形式のファイル操作

ファイルの作成

上記のソースコードをカスタマイズして、JSON形式のファイルを作成してみましょう。

サンプルソースコードは以下になります。

import java.io.BufferedWriter;
import java.nio.file.Files;
import java.nio.file.Paths;

import org.json.JSONObject;

public class Test {
  public static void main(String[] args) {
    JSONObject json = new JSONObject();
    json.put( "from", "shima" );
    json.put( "age", 30 );
    json.put( "male", true );
    String[] code = {"java", "javascript", "php"};
    json.put( "programming", code );

    String fileName = "sample.json";
    try ( BufferedWriter writer = Files.newBufferedWriter ( Paths.get( fileName ) ) ) {
      json.write( writer );
    } catch ( Exception e ) {
      System.err.println( e.getMessage() );
    }
  }
}

プログラム実行後、sample.jsonというファイルが作成されます。

ファイルの中身を確認してみましょう。

{"from":"shima","programming":["java","javascript","php"],"age":30,"male":true}

ファイルの読込

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import org.json.JSONObject;

public class Test {
  public static void main ( String[] args ) throws FileNotFoundException, IOException {
    File file = new File( "sample.json" );
    try ( BufferedReader br = new BufferedReader ( new FileReader( file ) ) ) {
      String text;
      while ( ( text = br.readLine() ) != null ) {
        JSONObject object = new JSONObject( text );
        System.out.println ( object );
      }
    }
  }
}

実行結果は以下の通りになります。

{"from":"shima","proguraming":["java","javascript","php"],"age":30,"male":true}

本記事のまとめ

今回は、JSON形式のデータ・ファイル操作について解説しました。

最後まで読んでいただきありがとうございます(*^-^*)

本記事の内容をまとめると以下の通りです。

JSONを扱える外部ライブラリは2つ

  • net.sf.json.JSONObject
  • org.json.JSONObject

各ファイルの操作方法を紹介

本ブログで紹介する各ファイル操作(読み込み・書き込み)は下記5つ。

おすすめ記事

Javaプログラミングをもう一度本格的に勉強したいっ!」という方へ

逆に、「Javaプログラミング以外を本格的に勉強したいっ!」という方へ

関連記事

Javaスキルで悩んでいる方必見!本気で学習できる環境を探してみよう!
詳細はこちら
Javaスキルで悩んでいる方必見!本気で学習できる環境を探してみよう!
詳細はこちら
タイトルとURLをコピーしました