Json-lib はJavaでJSON形式を取り扱うためのライブラリです。Javaオブジェクト<->JSON形式の表現の相互変換を行うことができます。
https://sourceforge.net/project/showfiles.php?group_id=171425よりバイナリをダウンロードできます。また依存ライブラリはhttp://json-lib.sourceforge.net/dependencies.html にあるとおり
などです。
Json-libを使っていろいろなJavaオブジェクトをJSON形式で出力してみました。
boolean[] boolArray = new boolean[] { true, false, true }; JSONArray jsonArray = JSONArray.fromObject(boolArray); System.out.println(jsonArray);
結果
[true,false,true]
キーを持たない配列はこのように記述するんですね。
List list = new ArrayList(); list.add("first"); list.add("second"); JSONArray jsonArray = JSONArray.fromObject(list); System.out.println(jsonArray);
結果
["first","second"]
配列と同じですね。当たり前ですが。
Map map = new HashMap(); map.put("name", "json"); map.put("bool", Boolean.TRUE); map.put("int", new Integer(1)); map.put("arr", new String[] { "a", "b" }); map.put("chars", new char[] { 'a', 'b' });
結果
{"chars":["a","b"],"arr":["a","b"],"int":1,"name":"json","bool":true}
記述がネスト化されていまて、さらに{"key":"value"}という構造になっています。だんだんJavaのオブジェクト表現に近くなってきました。
対象のJavaのモデルはUser,CustomerというHibernate/マッピング定義についてで書いたモデルを使用します。
User user = new User(); user.setName("ユーザ1"); user.setAddress("東京都江東区"); Customer c1 = new Customer(); c1.setName("顧客1"); Customer c2 = new Customer(); c2.setName("顧客2"); Set<Customer> set = new HashSet<Customer>(); set.add(c1); set.add(c2); user.setCustomers(set); JSONObject jsonObject = JSONObject.fromObject(user); System.out.println(jsonObject);
結果
{ "customers":[ {"user":null,"name":"顧客1","id":0}, {"user":null,"name":"顧客2","id":0} ], "address":"東京都江東区", "name":"ユーザ1", "id":0 } (整形してます)
Setを使ったモデル内のモデルSetも、ネスト構造を用いてうまく表現されていますね。
この記事は
現在のアクセス:90385