JSONファイルでデータ管理

データを記録するファイル形式にはCSVからXMLまでいろいろなデータ記述言語が存在します。

その中でもJSON形式は軽量で記述しやすいというメリットが多い言語です。

ここではその使い方を簡単に紹介していきます。

JSONとは

JSONは「JavaScript Object Notation」の略でもともとはJavaScriptで使われていたデータ記述言語です。

しかし、軽量でいろいろと便利なのでJavaScript以外でもいろいろな場所で使われています。

JSONで表現できることは次のことです。

その他の細かいルールについてはhttp://memopad.bitter.jp/w3c/json/json_syntax.htmlなどが参考になります。

実際に使ってみる

では、実際にJSON形式のデータを使ってみましょう。

ここでは例として次のようなJSONデータを考えてみます。

{
	"Eclair":"エクレア"
	"Donut":"ドーナツ",
	"Cupcake":"カップケーキ",
}

このように英語名とその日本語を対応させた連想配列を定義しました。

それをオブジェクトとして扱うのにJSONObjectを使います。

JSONObject obj 
= new JSONObject(
    new StringBuilder()
        .append("{")
        .append("   \"Eclair\" : \"エクレア\",")
        .append("   \"Donut\" : \"ドーナツ\",")
        .append("   \"Cupcake\" : \"カップケーキ\"")
        .append("}").toString());
);

これで生のJSONデータからJSONObjectが作られます。

全ての値を取得したい場合はこうします。

Iterator<String> keys = obj.keys();
    ///全てのキーを取得

while(keys.hasNext()){
    String key = keys.next();
    String value = obj.getString(key);
    Log.d("MainActivity", "キー名 = " + key + "   :   値 = " + value);
}

これでキーからすべての値が取得できます。

ここでログに出力されたデータの並び順を見てみるとこうなっていました。

キー名 = Cupcake   :   値 = カップケーキ
キー名 = Donut   :   値 = ドーナツ
キー名 = Eclair   :   値 = エクレア

キー名がデータが出てきた順でなく、ABC順に並び替えられています。

このように連想配列を使うとキー名は自動でABC順に並び替えられてしまうので注意です。

もし順番が大事なデータなら配列(JSONArray)を使うようにした方が良さそうです。

以上、JSONは簡単で便利にデータを記録できるという話でした。では、また!

関連項目
プライバシーポリシー