【Android开发】JSON格式传送网络信息
2014-08-22 16:37
423 查看
根据上一个案例:http://blog.csdn.net/acmman/article/details/38755237
下午又写了关于安卓网络传输的另外一种方法,采用JSON格式进行网络信息传递并解析。
用的WEB应用与Android客户端都是在上一个样例的基础上改写的。
相应的,在WEB-INF/Page下创建了新的JSP文件,用来接受request带过来的json数据,并描述成json数据的格式
相比XML格式的,json属于普通文本格式。代码很简单:
完成,之后在地址栏输入
http://10.20.124.72:8080/videonews/ListServlet?format=json
注意:后面必须加?format=json,不然无法以json格式输出数据!!
效果:
我们在VedioService业务类中新增getJSONLastNews() 与parseJSON()两个方法,用来得到json数据和解析json数据以 List形式返回
运行之后,安卓客户端以json形式接受数据,运行效果:
下午又写了关于安卓网络传输的另外一种方法,采用JSON格式进行网络信息传递并解析。
用的WEB应用与Android客户端都是在上一个样例的基础上改写的。
WEB应用端
Servlet有所变化package deu.hpu.servlet; import java.io.IOException; import java.io.PrintWriter; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import deu.hpu.servise.dima.News; import deu.hpu.servise.impl.VideoNewsService; import deu.hpu.servise.impl.VideoNewsServiceImpl; public class ListServlet extends HttpServlet { private VideoNewsService service=new VideoNewsServiceImpl(); public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request,response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { List<News> videos=service.getLastNews(); //得到请求参数 String format=request.getParameter("format"); //如果是以json的请求参数,就以就向客户端返回json格式的数据,否则就返回XML格式的数据 if("json".equals(format)){ StringBuilder builder=new StringBuilder(); builder.append('['); for(News news:videos){ builder.append('{'); builder.append("id:").append(news.getid()).append(','); builder.append("title:\"").append(news.getTitle()).append("\","); builder.append("timelength:").append(news.getTimelength()); builder.append("},"); } builder.deleteCharAt(builder.length()-1); builder.append(']'); request.setAttribute("json", builder.toString()); request.getRequestDispatcher("/WEB-INF/Page/jsonvideonews.jsp").forward(request, response); } else{ request.setAttribute("videos", videos); request.getRequestDispatcher("/WEB-INF/Page/videonews.jsp").forward(request, response); } } }
相应的,在WEB-INF/Page下创建了新的JSP文件,用来接受request带过来的json数据,并描述成json数据的格式
相比XML格式的,json属于普通文本格式。代码很简单:
<%@ page language="java" import="java.util.*" contentType="text/plain; charset=UTF-8" pageEncoding="UTF-8"%>${json}
完成,之后在地址栏输入
http://10.20.124.72:8080/videonews/ListServlet?format=json
注意:后面必须加?format=json,不然无法以json格式输出数据!!
效果:
Android客户端:
我们在VedioService业务类中新增getJSONLastNews() 与parseJSON()两个方法,用来得到json数据和解析json数据以 List形式返回
/* * 获取最新的视频资讯 * */ public static List<News> getJSONLastNews() throws Exception{ String path="http://10.20.124.72:8080/videonews/ListServlet?format=json"; URL url=new URL(path); HttpURLConnection conn=(HttpURLConnection) url.openConnection(); conn.setConnectTimeout(5000); conn.setRequestMethod("GET"); if(conn.getResponseCode()==200){ InputStream instream=conn.getInputStream(); return parseJSON(instream); } return null; } /* * 解析JSON数据 * */ private static List<News> parseJSON(InputStream instream) throws Exception{ List<News> newses=new ArrayList<News>(); byte [] data=streamTool.read(instream); String json=new String(data); //将String格式的json文本转换为数组格式 JSONArray array=new JSONArray(json); for (int i = 0; i < array.length(); i++) { JSONObject jsonObject=array.getJSONObject(i); News news=new News(jsonObject.getInt("id"),jsonObject.getString("title"),jsonObject.getInt("timelength")); newses.add(news); } return newses; }
运行之后,安卓客户端以json形式接受数据,运行效果:
相关文章推荐
- 【Android开发】XML传送网络信息
- Android初级开发(九)——网络交互—解析JSON格式数据
- [android开发] json格式 与javaBean, HashMap格式之间的转换, 网络请求时常用.
- Android网络开发中如何使用JSON进行网络通信---Android JSON数据通讯方法解析
- Android之从网络中获取数据并返回客户端的两种方式:XML格式返回与Json格式返回
- Android网络开发中如何使用JSON进行网络通信
- Android开发之从网络URL上下载JSON数据
- Android网络开发中如何使用JSON进行网络通信---Android_JSON数据通讯方法解析
- Android网络开发中如何使用JSON进行网络通信---Android JSON数据通讯方法解析
- Android开发入门之采用JSON格式返回数据给资讯客户端
- 【android开发】ANDROID处理JSON格式的数据
- Android访问网络系列之--服务端返回XML或JSON格式数据,Android 进行解析并显示
- android开发---ListView+Json+异步网络图片加载+滚动翻页的例子(图片能缓存,图片不错乱)
- Android开发18——获取网络资源之json数据
- 【Android网络开发の4】解析和生成JSON数据
- Android手机开发:网络连接-打开Url下载信息
- android:通过url向网络端获取json格式数据并解析显示
- android端获取网络json格式动态生成二维数组
- 【Android网络开发の4】解析和生成JSON数据
- Android之从网络中获取数据并返回客户端的两种方式:XML格式返回与Json格式返回