1、 首先要去官方下载json-lib工具包
下载地址:
http://sourceforge.net/projects/json-lib/files/json-lib/json-lib-2.4/
目前最新的是2.4的版本,本示例中使用的是v2.3;json-lib还需要以下依赖包:
jakarta commons-lang 2.5
jakarta commons-beanutils 1.8.0
jakarta commons-collections 3.2.1
jakarta commons-logging 1.1.1
ezmorph 1.0.6
官方网址:http://json-lib.sourceforge.net/
然后在工程中添加如下jar包:
当然你也可以用2.4的json-lib库
你可以在这里看看官方提供的示例:
http://json-lib.sourceforge.net/usage.html
由于本次介绍的示例需要junit工具,所以你还需要添加junit的jar文件,版本是4.8.2版本的,下载地址:https://github.com/KentBeck/junit/downloads
如果你还不了解JSON是什么?那么你应该可以看看http://www.json.org/json-zh.html
2、 将JavaList集合转换成JSON字符串
/** * <b>function:</b>转换Java List集合到JSON * @author hoojo * @createDate Nov 28, 2010 2:36:15 PM */ @Test public void writeList2JSON() { fail("==============Java List >>> JSON Array=================="); List<Student> stu = new ArrayList<Student>(); stu.add(bean); bean.setName("jack"); stu.add(bean); fail(JSONArray.fromObject(stu).toString()); fail(JSONSerializer.toJSON(stu).toString()); }
运行此方法后,可以看到控制台输出:
==============Java List >>> JSON Array==================
如果你是转换List集合,一定得用JSONArray或是JSONSrializer提供的序列化方法。如果你用JSONObject.fromObject方法转换List会出现异常,通常使用JSONSrializer这个JSON序列化的方法,它会自动识别你传递的对象的类型,然后转换成相应的JSON字符串。
3、 将Map集合转换成JSON对象
/** * <b>function:</b>转Java Map对象到JSON * @author hoojo * @createDate Nov 28, 2010 2:37:35 PM */ @Test public void writeMap2JSON() { Map<String, Object> map = new HashMap<String, Object>(); map.put("A", bean); bean.setName("jack"); map.put("B", bean); 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]; }"); fail("==============Java Map >>> JSON Object=================="); fail(JSONObject.fromObject(map).toString()); fail("==============Java Map >>> JSON Array =================="); fail(JSONArray.fromObject(map).toString()); fail("==============Java Map >>> JSON Object=================="); fail(JSONSerializer.toJSON(map).toString()); }
转载:
http://www.cnblogs.com/hoojo/archive/2011/04/21/2023805.html
4、json 数据转换为JSON java对象 ,然后获得其中的数据。
String str = {"username":"me"} JSONObject json = JSONObject.fromObject( str ); json.getString("usename")
创建JSON对象返回到客户端
JSONArray json = new JSONArray() ; json.add(0,"OK"); json.add(1, new ArrayList()); this.getResponse().setContentType("text/html;charset=UTF-8"); this.getResponse().getWriter().println(json); this.getResponse().getWriter().flush();
5、java中的LIST对象转换为json对象然后返回到客户端
SysUser user = new SysUser(); user.setUsername("sdfsjkd"); user.setCreatetime(new Date()); SysUser user2 = new SysUser(); user2.setUsername("sdfsjkd"); user2.setCreatetime(new Date()); System.out.println( new Date() ); list.add( user); list.add( user2); System.out.println(JSONArray.fromObject( list) ) ; PrintWriter print = this.getResponse().getWriter(); print.write( JSONArray.fromObject( list).toString() ) ;
6 附件中是一个测试例子。