Json-lib 是什么?
官方解释是:JSON-lib is a java library for transforming beans, maps, collections, java arrays and XML to JSON and back again to beans and DynaBeans.
其实就是实现json 格式与java 类对象的互转。 在Java代码中可以很简单的解析json格式的数据。
什么状况下使用Json-lib?
Java代码中要解析JSON格式的字符串,
1. 比如通过Ajax获取的,或是从其他接口中过来的json 格式的字符串;
2. 想传递一串很复杂的字符串给Java代码处理(比如使用applet 读取文件里面的内容)。 当然这种方式你可以自己写规则去解析,频繁的使用split,而且要处理好特殊字符。估计得头大。
怎么开始使用Json-lib?
官方网址: http://json-lib.sourceforge.net/
需要准备的jar包
1. json-lib-2.4-jdk15.jar 目前最新版, 下载地址 http://sourceforge.net/projects/json-lib/files/
2. HttpClient 用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包 。 下载地址 http://hc.apache.org/downloads.cgi
3. commons Lang 这一组API是提供一些基础的、通用的操作和处理,如自动生成toString()的结果 。 下载地址 http://commons.apache.org/lang/download_lang.cgi
4. Commons Logging Apache通用日志工具 http://commons.apache.org/logging/download_logging.cgi
5. Commons Collections 为Java标准的Collections API提供了相当好的补充 下载地址 http://commons.apache.org/collections/download_collections.cgi
6. Commons BeanUtils 利用反射机制对JavaBean的属性进行处理 下载地址 http://commons.apache.org/beanutils/download_beanutils.cgi
7. EZMorph 是一个简单的java类库用于将一种对象转换成另外一种对象 下载地址 http://sourceforge.net/projects/ezmorph/files/
实例展示
java Object ==> json
1. java Array ==>json string
String[] strArry = new String[]{"oscar1","oscar2","oscar3"}; JSONArray jsArray = JSONArray.fromObject(strArry); String sJSONStr1 = jsArray.toString(); System.out.println(sJSONStr1);==>["oscar1","oscar2","oscar3"]
2. java List ==> json string
List<String> list = new ArrayList<String>(); list.add("id"); list.add("name"); JSONArray jsArray = JSONArray.fromObject(list); String sJSONStr = jsArray.toString(); System.out.println(sJSONStr);
==> ["id","name"]
3. Java Map ==> json string
Map<String,Object> map = new HashMap<String,Object>(); map.put("id", 1); map.put("name", "Oscar"); JSONObject json = JSONObject.fromObject(map); String sJSONStr1 = json.toString(); System.out.println(sJSONStr1);==> {"id":1,"name":"Oscar"}
4. use JSONObject and JSONarray ==> json string
JSONObject jsobj = new JSONObject(); jsobj.put("id", 1); jsobj.put("name", "oscar"); JSONArray jsArray = new JSONArray(); JSONObject jsobj2 = new JSONObject(); jsobj2.put("day1", "65"); jsobj2.put("day2", "66"); jsArray.add(jsobj2); jsobj.element("weight", jsArray); String sJSONStr = jsobj.toString(); System.out.println(sJSONStr);