JSON(JavaScript Object Notation)
JavaScriptにおいて,オブジェクトの定義を行う際に用いられる表記
RFC4627にて規定されている。
XMLより簡素な記述で扱いが楽
JSON-lib
JSON-libはJavaからJSON形式を簡単に扱えるライブラリ
ダウンロードは以下
http://json-lib.sourceforge.net/
今回ダウンロードしたファイルは以下
json-lib-2.3-jdk15.jar
json-lib-2.3-jdk15-sources.jar
この他に以下のライブラリが必要
http://commons.apache.org/からダウンロード
- jakarta commons-lang 2.4
- jakarta commons-beanutils 1.7.0
- jakarta commons-collections 3.2
- jakarta commons-logging 1.1.1
http://ezmorph.sourceforge.net/からダウンロード
- ezmorph 1.0.6
JSONObjectの利用
import net.sf.json.JSONObject; public class JSONSample1 { public static void main(String[] args) { JSONObject obj = new JSONObject(); obj.put("id", "0000001"); obj.put("name", "Thom"); System.out.println(obj); //{"id":"0000001","name":"Thom"} } }
MapからJSONObjectへ
public class JSONSample2 { public static void main(String[] args) { Map<String, Object> map = new HashMap<String, Object>(); map.put( "name", "json" ); map.put( "bool", Boolean.TRUE ); map.put( "int", new Integer(1) ); map.put( "arr", new String[]{"a","b"} ); map.put( "func", "function(i){ return this.arr[i]; }" ); JSONObject jsonObject = JSONObject.fromObject( map ); System.out.println( jsonObject ); // {"arr":["a","b"],"int":1,"name":"json","func":function(i){ return this.arr[i]; },"bool":true} } }
ListからJSONArrayへ
public class JSONSample3 { public static void main(String[] args) { List<String> list = new ArrayList<String>(); list.add( "first" ); list.add( "second" ); JSONArray jsonArray = JSONArray.fromObject( list ); System.out.println( jsonArray );//["first","second"] } }
BeanからJSONObjectへ
public class Bean { private Integer id; private String name; public Integer getId() {return id;} public void setId(Integer id) {this.id = id;} public String getName() {return name;} public void setName(String name) {this.name = name;} } public class JSONSample4 { public static void main(String[] args) { Bean bean = new Bean(); bean.setId(12); bean.setName("Thom"); JSONObject jsonObject = JSONObject.fromObject(bean); System.out.println( jsonObject );//{"id":12,"name":"Thom"} } }
JSONObjectからBeanへ
public class JSONSample5 { public static void main(String[] args) { JSONObject jsonObject = JSONObject.fromObject("{\"id\":12,\"name\":\"Thom\"}"); Bean bean = (Bean)JSONObject.toBean( jsonObject, Bean.class ); System.out.println(bean.getId() + " " + bean.getName() ); } }
JSONObjectからXMLへ
以下のサンプルの実行には以下からxom-1.2.1.jarをダウンロードしてクラスパスに追加する必要あり。
http://www.xom.nu/
public class JSONSample6 { public static void main(String[] args) { JSONObject jsonObject = JSONObject.fromObject("{\"id\":12,\"name\":\"Thom\"}"); Bean bean = (Bean)JSONObject.toBean( jsonObject, Bean.class ); System.out.println(bean.getId() + " " + bean.getName() ); } }
<?xml version="1.0" encoding="UTF-8"?> <o><bool type="boolean">true</bool><int type="number">1</int><name type="string">json</name></o>
XMLからJSONへ
上と同様xom-1.2.1.jarが必要
public class JSONSample7 { public static void main(String[] args) { String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + "<o><bool type=\"boolean\">true</bool><int type=\"number\">1</int><name type=\"string\">json</name></o>"; JSON json = new XMLSerializer().read( xml ); System.out.println(json);//{"bool":true,"int":1,"name":"json"} } }