感謝のプログラミング 10000時間

たどり着いた結果(さき)は、感謝でした。

JSONICを使ってJavaオブジェクトをJSONに変換(JSON encode)したり、JSONをJavaオブジェクトに変換する(decode)サンプル

スポンサーリンク

JSONICのダウンロード

以下のURL先からjsonicのjarをダウンロードして、ビルドパスに追加する。
http://sourceforge.jp/projects/jsonic/
jsonic-1.2.11.zip 」
net.arnx.jsonic.JSONは、JSON形式のエンコードやデコードを行うためのstaticメソッドを提供するユーティリティクラスである。
基本的な変換は、このクラスのメソッドを呼び出すことで簡単に実現できる。

POJOからJSONへエンコードする(JavaオブジェクトをJSONに変換する)

JSONICを使って、JavaオブジェクトをJSONに変換するサンプル(example)は以下の通り。

package samples;

import net.arnx.jsonic.JSON;

public class JsonicSample {
    public static void main(String[] args) {
        Person me = new Person();
        me.setName("sho322");
        me.setAge(28);
        String[] interests = {"running","programming"};
        me.setInterests(interests);
        
        String jsonText = JSON.encode(me);
        System.out.println(jsonText);
    }

}

実行結果は以下の通り

{"age":28,"interests":["running","programming"],"name":"sho322"}

JSONをデコードする(JSONをPOJOなどのJavaオブジェクトに変換する)

まず、JSONの値に対応するプロパティを持つクラスを用意する。

package samples;

public class Person {
    private String name;
    private String[] interests;
    private int age;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String[] getInterests() {
        return interests;
    }
    public void setInterests(String[] interests) {
        this.interests = interests;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    
}

で、このクラスにJSONをデコードするサンプルは以下の通り。
JSONをListに入れたり、JSONをMapに変換する例も一緒にしている。

package samples;

import java.util.List;
import java.util.Map;

import net.arnx.jsonic.JSON;

public class JsonicDecodeSample {
    public static void main(String[] args) {
        String me = "{'age':28,'interests':['running','programming'],'name':'sho322'}";
        Person myPerson = JSON.decode(me, Person.class);
        System.out.println(myPerson.getName());
        System.out.println(myPerson.getAge());
        String[] interests = myPerson.getInterests(); 
        System.out.println(interests[0] + "," + interests[1]);
        
        //JSONをMapに変換
        Map map = (Map)JSON.decode(me);
        System.out.println("----Mapの結果------");
        System.out.println(map.get("name"));
        System.out.println(map.get("age"));
        System.out.println(map.get("interests"));
        
        //JSONをListに変換
        String jsonList = "['aaa', 'bbb', 'ccc']";
        List<String> list = (List)JSON.decode(jsonList);
        System.out.println("-------Listの結果---------");
        for (String text : list) {
            System.out.println(text);
        }
    }
}

結果は以下の通り。

sho322
28
running,programming
----Mapの結果------
sho322
28
[running, programming]
-------Listの結果---------
aaa
bbb
ccc

読んだ本

現場で使えるJavaライブラリ

現場で使えるJavaライブラリ


タイトルの通り、現場で使えそうなJavaのライブラリをふんだんに紹介してくれる。
JSONICもこの本を通じて知った。

感謝のプログラミング

今回で感謝のプログラミングは【610時間目】
10000時間まで、あと【9390時間】