JSON 即 JavaScript Object Natation,它是一种轻量级的数据交换格式,非常适合于服务器与 JavaScript 的交互。本文将快速讲解 JSON 格式,并通过代码示例演示如何分别在客户端和服务器端进行 JSON 格式数据的处理。
Json必需的包
commons-httpclient-3.1.jar
commons-lang-2.4.jar
commons-logging-1.1.1.jar
json-lib-2.2.3-jdk13.jar
ezmorph-1.0.6.jar
commons-collections-3.2.1.jar
以上包可以从
http://commons.apache.org/index.html
http://json-lib.sourceforge.net/
http://ezmorph.sourceforge.net/
中下载到。
出现java.lang.NoClassDefFoundError: net/sf/ezmorph/Morpher错误是因为没有导入ezmorph.jar文件或版本不对。
出现java.lang.NoClassDefFoundError: org/apache/commons/collections/map/ListOrderedMap错误是因为没有导入commons-collections.jar文件或版本不对。
Java代码转换成json代码
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 = newboolean[] { true, false, true }; JSONArray jsonArray1 = JSONArray.fromObject(boolArray); |
5. 一般数据转换成json代码
JSONArray jsonArray3 = JSONArray.fromObject("['json','is','easy']" ); |
6.beans转换成json代码
List list = new ArrayList(); JsonBean2 jb1 = new JsonBean2(); jb1.setCol(1); jb1.setRow(1); jb1.setValue("xx"); JsonBean2 jb2 = new JsonBean2(); jb2.setCol(2); jb2.setRow(2); jb2.setValue(""); list.add(jb1); list.add(jb2); JSONArray ja = JSONArray.fromObject(list); |
JsonBean2.java
package com.montersky.wap.tools;
public class JsonBean2 implements java.io.Serializable{
/**
*
*/
private static final long serialVersionUID = -4662760972533309454L;
private int col;
private int row;
private String value;
public int getCol() {
return col;
}
public void setCol(int col) {
this.col = col;
}
public int getRow() {
return row;
}
public void setRow(int row) {
this.row = row;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
//List集合转换成json代码
List list = new ArrayList();
list.add( "first" );
list.add( "second" );
JSONArray jsonArray2 = JSONArray.fromObject( list );
System.out.println("List集合转换成json代码");
System.out.println(jsonArray2.toString());
//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);
System.out.println("Map集合转换成json代码");
System.out.println(json.toString());
//Bean转换成json代码
JSONObject jsonObject = JSONObject.fromObject(new JsonBean2());
System.out.println("Bean转换成json代码");
System.out.println(jsonObject.toString());
//数组转换成json代码
boolean[] boolArray = new boolean[] { true, false, true };
JSONArray jsonArray1 = JSONArray.fromObject(boolArray);
System.out.println("数组转换成json代码");
System.out.println(jsonArray1.toString());
//一般数据转换成json代码
JSONArray jsonArray3 = JSONArray.fromObject("['json','is','easy']" );
System.out.println("一般数据转换成json代码");
System.out.println(jsonArray3.toString());
//beans转换成json代码
list = new ArrayList();
JsonBean2 jb1 = new JsonBean2();
jb1.setCol(1);
jb1.setRow(1);
jb1.setValue("xx");
JsonBean2 jb2 = new JsonBean2();
jb2.setCol(2);
jb2.setRow(2);
jb2.setValue("");
list.add(jb1);
list.add(jb2);
JSONArray ja = JSONArray.fromObject(list);
System.out.println("beans转换成json代码");
System.out.println(ja.toString());
代码输出结果说明:
List集合转换成json代码
["first","second"]
Map集合转换成json代码
{"arr":["a","b"],"int":1,"name":"json","func":function(i){ return this.arr[i]; },"bool":true}
Bean转换成json代码
{"col":0,"row":0,"value":""}
数组转换成json代码
[true,false,true]
一般数据转换成json代码
["json","is","easy"]
beans转换成json代码
[{"col":1,"row":1,"value":"xx"},{"col":2,"row":2,"value":""}]