讲解JAVA中JSON的反序列化

我这里介绍的是使用 JSONTools(面向JAVA) 的反序列化程序。JSON在反序列化时,如果对象的属性中存在复杂对象时,需要对该属性指定类的定义,也就是在初始化JSONTools的时候,必须给泛型确切Class类型。

Sample Code:
public Class Data{ private String name; }
public Class Block{ private Data abc; } 
从以上可以看出 Class Block 就是复杂对象,在初始化JSONTools的时候,一定要给出类型。目前支持对象有复杂对象嵌套,例如  Block 的属性abc( Data 类型)
Sample Code:
tring json =" {abc:{"name":"alonely"))";
JSONTools jsontools = JSONToolsFactory.getJsonTools();
ArrayList obj = jsontools.fromJSON(json);
//序列化一个对象到JSON String
JSONTools jsontools = JSONToolsFactory.getJsonTools();
ArrayList need2json = new ArrayList();
String json = jsontools.toJSON(need2json);
Ok,现在大家是不是对JAVA中JSON的反序列化有一定了解了。

今天我续昨天的《讲解JAVA中JSON的反序列化》一文之后,讲解的是JAVAJSON的 JsonHttpResponse 的使用方法。其实 JSONTools 对 JAVA 中的 HttpServletResponse 封装主要支持两种类型功能:
1、接收客户端 POST 到服务器后,对客户端 Response,对于 POST 数据到服务器的请求,对 POST 的返回值
格式如下:

//按优先级别顺序执行
succ: false //无优先级,无直接页面动作与之对应
script: "...." //优先级0,最高,默认值为null
nextURL: "...." //优先级1,默认值为null
actionID: null //优先级2,数字,null代表不执行(默认)
actionArgs: {arg1:arg1Value, arg2: arg2Value} //优先级2,默认值为null
info: abc... //优先级3,长度大于0时弹出提示框,默认值为null
Sample Code:
JsonHttpResponse jsonResp = new JsonHttpResponse(res);
//jsonResp.setJsonRespCode(code);
jsonResp.getJsonRespCode().setActionID(1);
jsonResp.getJsonRespCode().pushActionArgs(name, "alonely blog");
jsonResp.getJsonRespCode().pushActionArgs("type", true);
jsonResp.getJsonRespCode().setInfo(“hello");
jsonResp.getJsonRespCode().setNextURL("http:www.3y11.com");
jsonResp.returnJson();
2、客户端向服务器请求数据,对客户端通过 Response 返回 Json 格式数据。
服务器在使用JSONTools序列化服务器对象实例后,直接调用 JsonHttpResponse.pushJsonVar(变量名,JSON字符串)  最后使用 returnJson 方法将多组 Json 数据发回给客户端。
Sample Code:
JsonHttpResponse jsonResp = new JsonHttpResponse(res);
String out = " {abc:{"name":"alonely"))";
jsonResp.pushJsonVar("tree", out); jsonResp.pushJsonVar("testData", out);
jsonResp.returnJson();
OK,到现在为止 JSONTools 的基本使用已经讲解完毕了。
posted @ 2008-05-22 14:48  dainiao01  阅读(888)  评论(0编辑  收藏  举报