假设你已经了解JSON数据是怎么一回事了。
1、服务端
服务器端使用json-lib 组装JSON数据的,在Servlet类或者相关容器类中,这里是在struts2中的action类中操作的,代码如下:
- List list =userService.getAllObject(); //这里是从数据库查询出相关数据,封装成对象,放入list中的
- JSONArray ja =JSONArray.fromObject(list); //组装成JSON数据
- System.out.println(" ja -->"+ja.toString());
- /*打印出来的数据如下所示
- [
- {"createDate":"2012-05-24 00:04:10.0","createMan":"system","inteUpdateDate":"",
- "integralId":-1,"isUpdateInteApp":0,"isUpdateRecApp":0,"lb":0,"needGames":15,
- "phoneIMEI":"1234556","phoneSystem":"","phoneType":"","recUpdateDate":"",
- "recomAppId":-1,"screenHeight":0,"screenWidth":0,"type":0,"userId":10100},
- {"createDate":"2012-05-24 00:04:56.0","createMan":"system","inteUpdateDate":"",
- "integralId":-1,"isUpdateInteApp":0,"isUpdateRecApp":0,"lb":0,"needGames":15,
- "phoneIMEI":"1234557","phoneSystem":"","phoneType":"","recUpdateDate":"",
- "recomAppId":-1,"screenHeight":0,"screenWidth":0,"type":0,"userId":10101}
- ]
- */
- HttpServletResponse response =ServletActionContext.getResponse();
- PrintWriter out = response.getWriter();
- out.write(ja.toString());//返回字符串格式的JSON数据
- out.flush();
- out.close();
2、客户端
假设服务端提供的接口地址为:http://192.168.1.102:8088/AndroidService/service/getUsers.action
客户端访问服务端及解析服务端返回JSON数据主要代码如下:
- private void getLocation() {
- StringBuilder builder = new StringBuilder();
- HttpClient client = new DefaultHttpClient();
- HttpGet get = new HttpGet("http://192.168.1.102:8088/AndroidService/service/getUsers.action");
- try {
- HttpResponse response = client.execute(get); //这里使用的是Get方式访问服务端接口,当然也可以使用Post方式
- BufferedReader reader = new BufferedReader(new InputStreamReader(
- response.getEntity().getContent()));
- for (String s = reader.readLine(); s != null; s = reader.readLine()) {
- builder.append(s);
- }
- JSONArray array = new JSONArray(new String(builder.toString()));
- for (int i = 0; i < array.length(); i++) {
- JSONObject item = array.getJSONObject(i);
- String userId = item.getString("userId");
- String phoneIMEI = item.getString("phoneIMEI");
- String createMan = item.getString("createMan");
- String createDate = item.getString("createDate");
- //这里txtInfo是一个TextView控件
- txtInfo.append("userId:"+userId+" phoneIMEI:"+phoneIMEI
- +" createMan:"+createMan+" createDate:"+createDate);
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- }