本文介绍如何使用JSON-lib这个Java类包实现Java的数据转换。通过此类包可以把bean,map和XML转换成JSON并能够把JSON转回成bean和DynaBean。
JSON-lib这个Java类包用于把bean,map和XML转换成JSON并能够把JSON转回成bean和DynaBean。
下载地址:
http://sourceforge.net/projects/json-lib/
还要需要的第3方包:
org.apache.commons
包括:
commons-beanutils.jar
commons-collections-3.2.jar
commons-lang-2.6.jar
commons-logging-1.1.1.jar
net.sf.ezmorph(ezmorph-1.0.6.jar)
1. 对List类型的解析:
boolean[] boolArray = new boolean[]{true,false,true}; JSONArray jsonArray1 = JSONArray.fromObject( boolArray ); System.out.println( jsonArray1 ); // prints [true,false,true] List list = new ArrayList(); list.add( "first" ); list.add( "second" ); JSONArray jsonArray2 = JSONArray.fromObject( list ); System.out.println( jsonArray2 ); // prints ["first","second"] JSONArray jsonArray3 = JSONArray.fromObject( "['json','is','easy']" ); System.out.println( jsonArray3 ); // prints ["json","is","easy"]
2. 对Map类型的解析
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("func", "function(i){ return this.arr[i]; }"); JSONObject json = JSONObject.fromObject(map); System.out.println(json); // {"arr":["a","b"],"int":1,"name":"json","func":function(i){ return this.arr[i]; },"bool":true}
3、对JavaBEAN的解析
import net.sf.json.*; public class Test { public static class JsonBean{ private String name="json"; private int pojoId = 1; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getPojoId() { return pojoId; } public void setPojoId(int pojoId) { this.pojoId = pojoId; } } /** * @param args */ public static void main(String[] args) { JSONObject jsonObject = JSONObject.fromObject(new JsonBean()); System.out.println(jsonObject); // {"name":"json","pojoId":1} } }
说明apache json-lib可以满足各种json的解析。