由於js對json的原生支援,所以現在很多項目的資料轉送都喜歡用json。 怎麼樣把資料從java對象轉化為json對象,有怎麼把前台的json對象轉化成java對象去處理?
這是開發中常要解決的問題。
json-lib是sourceforge的一個開源項目,常用來解決java json資料轉換的問題。
但是還需要一些依賴包才可以正常使用
commons-beanutils-1.8.0.jar
commons-collections-3.1.jar
commons-logging-1.1.1.jar
commons-logging-api-1.1.jar
ezmorph-1.0.6.jar
commons-lang-2.4.jar !!用3.x的jar無法啟動並執行
這裡是這些包的
由於官網的doc總是打不開 於是就看了下別人的blog
這裡是java -》json 轉化的幾個小案例
Person.java javabean模型
[java]
package com.lzz.json;
public class Person {
private int id;
private String name;
private String addr;
public Person(){ }
public Person(int id, String name, String addr) {
super();
this.id = id;
this.name = name;
this.addr = addr;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddr() {
return addr;
}
public void setAddr(String addr) {
this.addr = addr;
}
}
package com.lzz.json;
public class Person {
private int id;
private String name;
private String addr;
public Person(){ }
public Person(int id, String name, String addr) {
super();
this.id = id;
this.name = name;
this.addr = addr;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddr() {
return addr;
}
public void setAddr(String addr) {
this.addr = addr;
}
}
這裡是幾個操作的案例
SimpleJavaToJson.java
[java]
package com.lzz.json;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
/**ref http://ryxxlong.iteye.com/blog/583862
*json 支援原生的js
*使用eval 可以直接變為js對象
*JSON Java
*string <=> java.lang.String, java.lang.Character, char
*number <=> java.lang.Number, byte, short, int, long, float, double
*true|false <=> java.lang.Boolean, boolean
*null <=> null
*function <=> net.sf.json.JSONFunction
*array <=> net.sf.json.JSONArray (object, string, number, boolean, function)
*object <=> net.sf.json.JSONObject
*/
public class SimpleJavaToJson {
public static void main(String[] args) {
/*集合類型的從java 編程json對象*/
//arrayJson();
//listJson();
//stringJson();
/*map類型的處理*/
mapJson();
/*javabean的處理*/
beanJson();
}
//數組處理
public static void arrayJson(){
String arr[] ={"lzz","12","ee"} ;
JSONArray jarr = JSONArray.fromObject(arr);
System.out.println(jarr);
}
//List處理
public static void listJson(){
List<String> list = new ArrayList<String>();
list.add("apple");
list.add("orange");
list.add("money");
JSONArray jlist = JSONArray.fromObject(list);
System.out.println(jlist);
}
//字串 形式 這裡的字串一定要符合json 集合的格式
public static void stringJson(){
String str = "['a','b','c',{d:'aa'}]";
JSONArray jarr = JSONArray.fromObject(str);
System.out.println(jarr);
}
//將map類型轉化為json格式,產生的json對象也是沒有順序的
public static void mapJson(){
Map map = new HashMap();
map.put("name", "apple");
map.put("age", new Integer(20));
map.put("haoren",Boolean.TRUE);
map.put("arr", new String[]{"a","b","c"});
JSONObject jobj = JSONObject.fromObject(map);
System.out.println(jobj);
}
//javabean 的json轉化
public static void beanJson(){
Person p = new Person(101, "apple", "China");
JSONObject jobj = JSONObject.fromObject(p);
System.out.println(jobj);
}
}