JSON 即 JavaScript Object Natation,它是一种轻量级的数据交换格式,非常适合于服务器与 JavaScript 的交互。
在java中使用,需要导入**–net.sf.json.下的类(jar包是json-lib-x.x.jar*)
完整包:
commons-beanutils.xxx.jar
commons-collections.xxx.jar
commons-lang.xxx.jar
commons-logging.jar
json-lib.xxx.jar
ezmorph.xxx.jar
如果不导入这些包,你就等着报下面这些异常吧,嘻嘻:
java.lang.NoClassDefFoundError: net/sf/ezmorph/Morpher
java.lang.NoClassDefFoundError: org/apache/commons/collections/map/ListOrderedMap
java.lang.NoClassDefFoundError: org/apache/commons/beanutils/DynaBean
java.lang.NoClassDefFoundError: org/apache/commons/codec/DecoderException
java.lang.NoClassDefFoundError:org/apache/commons/lang/exception/NestableRuntimeException
java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
JSON在对Object转换的时候,是按照domain类(写有get和set方法的对象类,如下面的Student类)中的所有getXXX()方法进行转换的。如果你在类中写了非属性的getXXX()方法,那么返回给你的就会有XXX属性了。先上例子,最后放完整的使用方法。
public class Student {
private String no;
private String name;
public String getNo() {
return no;
}
public void setNo(String no) {
this.no = no;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
JSON部分
List<Student> list = asmn;//这里我用asmn代替实际的值
Map<String, Object> resultMap = new HashMap<String, Object>();
resultMap.put("total", total);
resultMap.put("rows", list);
System.out.println("asd:"+JSONObject.fromObject(resultMap).toString());
输出结果asd:{"total":1,"rows":[{"name":"梦诺","no":"001"}]}
下面来介绍具体用法:
1. List集合转换成json代码
List list = new ArrayList();
list.add( "first" );
list.add( "second" );
JSONArray jsonArray2 = JSONArray.fromObject( list );
2. Map集合转换成json代码
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);
3. Bean转换成json代码
JSONObject jsonObject = JSONObject.fromObject(new JsonBean());
4. 数组转换成json代码
boolean[] boolArray = new boolean[] { true, false, true };
JSONArray jsonArray1 = JSONArray.fromObject(boolArray);
5. 一般数据转换成json代码
JSONArray jsonArray3 = JSONArray.fromObject("['json','is','easy']" );