後臺怎麼接收處理從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);
獲取物件中的引數的值
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;
}
}