一:在服务器读取数据库并构造json数据。
- json 是使用键值对存储数据的,使用 json 数据需要导入 json 包,将 json 包放入 WebConten–>WEB-INF–>lib 目录下。
json 包下载链接:https://pan.baidu.com/s/1tIRE_I6ERn6h4JbFcPLutQ
提取码:wwfh (直接使用链接提供的 json.jar 包即可) - 将数据库数据打包成 json 数据,如下为在 doGet 方法中部分代码
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
//json 对象
JSONObject json = new JSONObject();
try {
Class.forName(driver);
conn = DriverManager.getConnection(url,usr,password);
pstmt = conn.prepareStatement("select * from android where account=? and password=?");
pstmt.setString(1, "111");
pstmt.setString(2, "111");
rs = pstmt.executeQuery();
//添加数据到 json 对象中
if (rs.next()) {
json.put("账号", rs.getString("account"));
json.put("密码", rs.getString("password"));
System.out.println("账号:" + json.getString("账号"));
System.out.println("密码:" + json.getString("密码"));
}
} catch (Exception e) {
e.printStackTrace();
}
response.setContentType("text/json;charset=UTF-8");
response.setCharacterEncoding("UTF-8");
//向客户端返回 json 数据
PrintWriter writer = response.getWriter();
writer.print(json);
writer.flush();
writer.close();
形成的 json 数据如图:
二:安卓客户端解析返回 json 数据。
部分代码如下:
//获取服务器返回 json 数据
final String responseData = response.body().string();
//解析,会抛出异常,必须捕获
try {
JSONObject object = new JSONObject(responseData);
String account = object.getString("账号");
String password = object.getString("密码");
} catch (Exception e) {
e.printStackTrace();
}
最后,json 的简单构造与解析就完成了。