サーバとクライアントjsonデータ転送
例えばクライアントはajaxを介してjson要求データを送信する
サーバ側がクエリー・データベースに応答
jsonデータとエンティティクラスの変換について
$.ajax({
type:"get",
url:"${ctxPath}/login",
contentType:"application/json,charset=UTF-8",
data:{
"handle":"login",
"name":" "
},
dataType:'json',
success: function(data){
console.log(data);
},
error: function(){
console.log(" ");
}
サーバ側がクエリー・データベースに応答
req.setCharacterEncoding("utf-8");
resp.setContentType("text/html");
resp.setCharacterEncoding("utf-8");
PrintWriter writer=resp.getWriter();
String handle=req.getParameter("handle");
String account=req.getParameter("name");
System.out.println("handle="+handle+",account="+account);
Connection conn=null;
try {
conn=DBUtil.getConnection();
String sql="select * from person";
PreparedStatement psmt=conn.prepareStatement(sql);
ResultSet rs=psmt.executeQuery();
ResultSetMetaData rsm=rs.getMetaData();
int num=rsm.getColumnCount();
JSONObject json=new JSONObject();
JSONObject user=new JSONObject();
while(rs.next()) {
String name=rs.getString("name");
json.put("code", "0");
json.put("message", "success");
if(account.equals(name)) {
for(int i=1;i<=num;i++){
user.put(rsm.getColumnName(i), rs.getObject(i));
}
json.put("data", user);
System.out.println(json.toString());
writer.write(json.toString());
writer.flush();
writer.close();
}
}
} catch (Exception e) {
e.printStackTrace();
}finally {
DBUtil.closeConnection(conn);
}
jsonデータとエンティティクラスの変換について
Person person=(Person) JSONObject.toBean(user,Person.class);//json person
System.out.println(person.getName());
System.out.println(person);
JSONObject data=JSONObject.fromObject(person);//person json
System.out.println(data.get("name"));
System.out.println(data.toString());