Json_lib可以方便的将Java对象转成json格式的字符串,也可以将Java对象转换成xml格式的文档,同样可以将Json字符串转换成Java对象,或者将xml字符串转换成Java对象。
官网:http://json-lib.sourceforge.net/
JSON在线转换:http://json.parser.online.fr/
JSON教程:http://www.json.org/json-zh.html
官网上说明了json_lib还需要依赖的Jar包有:
JAR |
网址 |
jakarta commons-lang 2.5 |
|
jakarta commons-beanutils 1.8.0 |
|
jakarta commons-collections 3.2.1 |
http://commons.apache.org/collections/download_collections.cgi |
jakarta commons-logging 1.1.1 |
|
ezmorph 1.0.6 |
注意这里如果jakarta commons-lang 使用3.1版本的会报:Caused by: java.lang.ClassNotFoundException: org.apache.commons.lang.exception.NestableRuntimeException
所以这里还是使用2.6的吧
MyBean.java:
1 package com.iflytek.json; 2 3 import net.sf.json.JSONFunction; 4 5 /** 6 * @author xudongwang 2012-1-15 7 * 8 * Email:xdwangiflytek@gmail.com 9 */ 10 public class MyBean { 11 private String name = "json"; 12 private int pojoId = 1; 13 private char[] options = new char[] { ‘a‘, ‘f‘ }; 14 private String func1 = "function(i){ return this.options[i]; }"; 15 private JSONFunction func2 = new JSONFunction(new String[] { "i" }, 16 "return this.options[i];"); 17 18 19 public String getName() { 20 return name; 21 } 22 23 public void setName(String name) { 24 this.name = name; 25 } 26 27 public int getPojoId() { 28 return pojoId; 29 } 30 31 public void setPojoId(int pojoId) { 32 this.pojoId = pojoId; 33 } 34 35 public char[] getOptions() { 36 return options; 37 } 38 39 public void setOptions(char[] options) { 40 this.options = options; 41 } 42 43 public String getFunc1() { 44 return func1; 45 } 46 47 public void setFunc1(String func1) { 48 this.func1 = func1; 49 } 50 51 public JSONFunction getFunc2() { 52 return func2; 53 } 54 55 public void setFunc2(JSONFunction func2) { 56 this.func2 = func2; 57 } 58 59 }
JsonlibTest.java:
1 package com.iflytek.json; 2 3 import java.lang.reflect.InvocationTargetException; 4 import java.util.ArrayList; 5 import java.util.HashMap; 6 import java.util.List; 7 import java.util.Map; 8 9 import net.sf.json.JSONArray; 10 import net.sf.json.JSONObject; 11 12 import org.apache.commons.beanutils.PropertyUtils; 13 14 /** 15 * @author xudongwang 2012-1-15 16 * 17 * Email:xdwangiflytek@gmail.com 18 */ 19 public class JsonlibTest { 20 21 // JSONArray是将一个Java对象转换成json的Array格式,如[‘xdwang‘, 22] 22 private JSONArray jsonArray = null; 23 // JSONObject是将Java对象转换成一个json的Object形式,如{name:‘xdwang‘, age: 22} 24 private JSONObject jsonObject = null; 25 26 public static void main(String[] args) { 27 JsonlibTest json = new JsonlibTest(); 28 json.ArrayToJSON(); 29 json.ListToJSON(); 30 json.MapsToJSON(); 31 json.BeanToJSON(); 32 json.JSONToBean(); 33 } 34 35 /** 36 * 数组转JSON操作 37 */ 38 public void ArrayToJSON() { 39 boolean[] boolArray = new boolean[] { true, false, true }; 40 jsonArray = JSONArray.fromObject(boolArray); 41 System.out.println("数组转JSON操作:" + jsonArray); 42 } 43 44 /** 45 * 集合转JSON操作 46 */ 47 public void ListToJSON() { 48 List<String> list = new ArrayList<String>(); 49 list.add("first"); 50 list.add("second"); 51 jsonArray = JSONArray.fromObject(list); 52 System.out.println("集合转JSON操作:" + jsonArray); 53 } 54 55 /** 56 * Maps转JSON操作 57 */ 58 public void MapsToJSON() { 59 Map<String, Object> map = new HashMap<String, Object>(); 60 map.put("name", "json"); 61 map.put("bool", Boolean.TRUE); 62 map.put("int", new Integer(1)); 63 map.put("arr", new String[] { "a", "b" }); 64 map.put("func", "function(i){ return this.arr[i]; }"); 65 jsonObject = JSONObject.fromObject(map); 66 System.out.println("Maps转JSON操作:" + jsonObject); 67 } 68 69 /** 70 * Bean转JSON操作 71 */ 72 public void BeanToJSON() { 73 jsonObject = JSONObject.fromObject(new MyBean()); 74 System.out.println("Bean转JSON操作:" + jsonObject); 75 } 76 77 /** 78 * JSON转Bean操作 79 */ 80 public void JSONToBean() { 81 try { 82 String json = "{\"func1\":function(i){ return this.options[i]; },\"func2\":function(i){ return this.options[i]; },\"name\":\"json\",\"options\":[\"a\",\"f\"],\"pojoId\":1}"; 83 jsonObject = JSONObject.fromObject(json); 84 Object bean = JSONObject.toBean(jsonObject); 85 System.out.println("jsonStr:" + json); 86 87 System.out.println("name:" + jsonObject.get("name")); 88 System.out.println("name:" 89 + PropertyUtils.getProperty(bean, "name")); 90 System.out.println("pojoId:" + jsonObject.get("pojoId")); 91 System.out.println("pojoId:" 92 + PropertyUtils.getProperty(bean, "pojoId")); 93 System.out.println("options:" + jsonObject.get("options")); 94 System.out.println("options:" 95 + PropertyUtils.getProperty(bean, "options")); 96 System.out.println("func1:" + jsonObject.get("func1")); 97 System.out.println("func1:" 98 + PropertyUtils.getProperty(bean, "func1")); 99 System.out.println("func2:" + jsonObject.get("func2")); 100 System.out.println("func2:" 101 + PropertyUtils.getProperty(bean, "func2")); 102 } catch (IllegalAccessException e) { 103 e.printStackTrace(); 104 } catch (InvocationTargetException e) { 105 e.printStackTrace(); 106 } catch (NoSuchMethodException e) { 107 e.printStackTrace(); 108 } 109 } 110 111 }
这里就不描述xml的相关操作了,具体可以查看文档。
- json-lib-2.4-jdk15.jar (155.4 KB)
- 下载次数: 15
- json-lib-2.4-jdk15-javadoc.jar (242.7 KB)
- 下载次数: 13
- json-lib-2.4-jdk15-sources.jar (102.5 KB)
- 下载次数: 14