gson將JSON字符串轉成Java對象
在Java中,將一個json格式的字符串轉換爲一個java類的對象。看到網上很多方法,覺得使用google的Gson的最好用。
下面一個servlet的httpRequset的處理舉例:
package com.xiyou.webService;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.xiyou.util.FormatDateTime;
import com.google.gson.Gson;
class TransactionResponse {
String action, loginAccount, createdInfoDetail, positionInfo;
}
public class UserAccountServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public UserAccountServlet() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
UserAccountController userAccountController = new UserAccountController();
String result = "";
String jsonString =
"{'action':'add','loginAccount':'137665123333','createdInfoDetail':'createdInfoDetail','positionInfo':'abeddafdafdadafafdfdasfadf'}";
try {
jsonString = request.getParameter("json");
response.setContentType("text/html;charset=utf-8");
response.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();
Gson gson = new Gson();
TransactionResponse tResponse = gson.fromJson(jsonString, TransactionResponse.class);
result = tResponse.action;
out.println(result);
result = tResponse.loginAccount;
out.println(result);
result = tResponse.createdInfoDetail;
out.println(result);
result = tResponse.positionInfo;
out.println(result);
out.flush();
out.close();
} catch (Exception e) {
response.setContentType("text/html;charset=utf-8");
response.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();
out.println("但願朝陽常照我土,莫忘烈士鮮血滿地 " + "@" + FormatDateTime.toLocalLongDateByNow());
out.flush();
out.close();
e.printStackTrace();
}
}// json get the end of json
}
下面一個servlet的httpRequset的處理舉例:
package com.xiyou.webService;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.xiyou.util.FormatDateTime;
import com.google.gson.Gson;
class TransactionResponse {
String action, loginAccount, createdInfoDetail, positionInfo;
}
public class UserAccountServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public UserAccountServlet() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
UserAccountController userAccountController = new UserAccountController();
String result = "";
String jsonString =
"{'action':'add','loginAccount':'137665123333','createdInfoDetail':'createdInfoDetail','positionInfo':'abeddafdafdadafafdfdasfadf'}";
try {
jsonString = request.getParameter("json");
response.setContentType("text/html;charset=utf-8");
response.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();
Gson gson = new Gson();
TransactionResponse tResponse = gson.fromJson(jsonString, TransactionResponse.class);
result = tResponse.action;
out.println(result);
result = tResponse.loginAccount;
out.println(result);
result = tResponse.createdInfoDetail;
out.println(result);
result = tResponse.positionInfo;
out.println(result);
out.flush();
out.close();
} catch (Exception e) {
response.setContentType("text/html;charset=utf-8");
response.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();
out.println("但願朝陽常照我土,莫忘烈士鮮血滿地 " + "@" + FormatDateTime.toLocalLongDateByNow());
out.flush();
out.close();
e.printStackTrace();
}
}// json get the end of json
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.