1. 程式人生 > >後臺怎麼接收處理從url 客戶端傳來的json資料格式

後臺怎麼接收處理從url 客戶端傳來的json資料格式

最近做專案用到了 一個新的客戶端傳參的方式,主要採用的是客戶端以json資料格式的方式想後臺傳遞資料,所以,後臺接收的引數也是json格式的,剛開始不知道怎麼做,

到最後才找到了解決的辦法就是利用google提供的gson.jar就能很好的解決。其實就是把前端的json資料格式轉換成物件#

開始看了google提供的API我就能知道其實,後臺解析前端傳來的json資料格式聽簡單的#

比如客戶端傳來的引數格式url 

url:   http://10.16.16.104:8081/ilifeGroupinfo_getGroupinfoPager.action?data={"c":"groupInfo","m":"list","p":{"pageNum":1,"type":0,"sessionKey":1}}

   

從最外邊可以知道我們傳給的最外面的引數是data所以後臺接收到的也只是data的引數 

所以我們現在需要做的就是解析傳給後臺的json資料格式

程式碼如下:

// 谷歌產生json物件的工具
Gson json = new Gson();

// 產生 P{} 裡面引數接收物件
Param p = new Param();
 Param物件裡的屬性是pageNum,type,sessionKey(注意的是該物件指的是p,物件裡面的屬性也必須和客戶端中json資料格式中的欄位名稱一致)

//需要將客戶端傳來的json資料轉換成什麼物件

p = json.fromJson(data, Param.class);

 data為最外層的json資料物件

獲取物件中的引數的值 

p.getType();就能獲取到客戶端傳來的引數的值了###

很簡單的 API一看就明白了###

最外層當然為

gson.jar包  

public class Base {
private String m;
private String c;

public String getM() {
return m;
}
public void setM(String m) {
this.m = m;
}
public String getC() {
return c;
}
public void setC(String c) {
this.c = c;



}

物件中的物件

package com.ismartinfo.ilife.api.entities.parameter;


public class Param extends Base{

private ParamValue p; 

public ParamValue getP() {
return p;
}


public void setP(ParamValue p) {
this.p = p;
}

 
}

package com.ismartinfo.ilife.api.entities.parameter;


public class ParamValue { 

private int pageNum;

private int type; 

private int groupInfoId;

private int groupInfoReplyId;

private String sessionKey; 

private int groupTitle;
 
private String groupContent;

private String phone;

private int buttonType;

private int replayId;

private int disclosure;  

public int getPageNum() {
return pageNum;
}
public void setPageNum(int pageNum) {
this.pageNum = pageNum;

public String getSessionKey() {
return sessionKey;
}
public void setSessionKey(String sessionKey) {
this.sessionKey = sessionKey;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public int getGroupInfoId() {
return groupInfoId;
}
public void setGroupInfoId(int groupInfoId) {
this.groupInfoId = groupInfoId;
}
public int getGroupInfoReplyId() {
return groupInfoReplyId;
}
public void setGroupInfoReplyId(int groupInfoReplyId) {
this.groupInfoReplyId = groupInfoReplyId;
}
public int getGroupTitle() {
return groupTitle;
}
public void setGroupTitle(int groupTitle) {
this.groupTitle = groupTitle;
}
public String getGroupContent() {
return groupContent;
}
public void setGroupContent(String groupContent) {
this.groupContent = groupContent;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public int getButtonType() {
return buttonType;
}
public void setButtonType(int buttonType) {
this.buttonType = buttonType;
}
public int getReplayId() {
return replayId;
}
public void setReplayId(int replayId) {
this.replayId = replayId;
}
public int getDisclosure() {
return disclosure;
}
public void setDisclosure(int disclosure) {
this.disclosure = disclosure;
}  
}