一、将任意的javaBean对象转换为json字符串:
Object obj=XXX;//任意一个javabean的对象都可以,但是这个javaBean必须是公开的,否则会报找不到get方法。
JSONObject jo=JSONObject.fromObject(obj);
System.out.println(jo.toString());
如果你的obj知道具体类型的话,还[可以使用JSONArray等对象来转换。
其方法也类似。
二、将json字符串转换为javaBean对象:
String str="json字符串对象";
JSONObject jo=JSONObject.fromObject(obj);
T t=(T)JSONObject.toBean(jo,T.class);
XXXX
实例:
简单的测试代码:
import java.util.List;
import net.sf.json.JSONObject;
public class Test {
public static void main(String[] args) throws Exception {
JSONObject jo = JSONObject.fromObject(new T());
String str = (jo.toString());
System.out.println(str);
JSONObject jo2 = JSONObject.fromObject(str);
T t = (T) JSONObject.toBean(jo2, T.class);
List<T2> lists2 = (t.getTest2());
for (Object t2 : lists2) {//这里的Object如果直接写成T2的话,会出错的,原因是JSON 转换后的lists2对象因为它不知道类型,就解析成JSON里的某种格式了,我们需要再调用相同的方法将其转成我们所知的JavaBean
System.out.println(((T3) JSONObject.toBean(JSONObject.fromObject(t2), T3.class)).getAaa());
}
List<String> l3 = t.getListString();
for (String s : l3) {
System.out.println(s);
}
}
}
运行结果:
{"test2":[{"aaa":"testAAA","bbb":"testBBB"},{"aaa":"testAAA","bbb":"testBBB"},{"aaa":"testAAA", "bbb":"testBBB"},
{"aaa":"testAAA","bbb":"testBBB"},{"aaa":"testAAA","bbb":"testBBB"}],"age":15,"listString":["中华人民共和国",
"中华人民共和国","中华人民共和国"],"str":"testStr"}
testAAA
2010-5-1 0:41:50 net.sf.json.JSONObject toBean
警告: Tried to assign property bbb:ng.String to bean of class T3
2010-5-1 0:41:50 net.sf.json.JSONObject toBean
警告: Tried to assign property bbb:ng.String to bean of class T3
testAAA
2010-5-1 0:41:50 net.sf.json.JSONObject toBean
警告: Tried to assign property bbb:ng.String to bean of class T3
testAAA
2010-5-1 0:41:50 net.sf.json.JSONObject toBean
警告: Tried to assign property bbb:ng.String to bean of class T3
testAAA
2010-5-1 0:41:50 net.sf.json.JSONObject toBean
警告: Tried to assign property bbb:ng.String to bean of class T3
testAAA
中华人民共和国
中华人民共和国
中华人民共和国。