返回JSON資料到客戶端
阿新 • • 發佈:2019-01-01
public List getLatestNews(){ List list=new ArrayList(); list.add(new News(1, "納妾記", 45)); list.add(new News(2, "花千骨", 40)); list.add(new News(3, "捉妖記", 120)); list.add(new News(4, "天涯明月刀", 50)); list.add(new News(5, "仙劍客棧", 25)); return list; } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //[{id:80,title=”捉妖記”,timelength=129},{},{}] Listdata=service.getLatestNews(); String format=(String) request.getParameter("format"); if(format.equals("json")){ StringBuilder builder=new StringBuilder(); builder.append('['); for(News news:data){ builder.append('{'); builder.append("id:").append(news.getId()).append(','); builder.append("title=").append("\"").append(news.getTitle()).append("\","); builder.append("timelength=").append(news.getTimelength()); builder.append('}').append(','); } builder.deleteCharAt(builder.length()-1); builder.append(']'); request.setAttribute("json", builder); RequestDispatcher dispatcherjson=request.getRequestDispatcher("/WEB-INF/page/jsonvideonews.jsp"); dispatcherjson.forward(request, response); }else{ request.setAttribute("video", data); RequestDispatcher dispatcher=request.getRequestDispatcher("/WEB-INF/page/videonews.jsp"); dispatcher.forward(request, response); } }
安卓端: private List parserJSON(InputStream inputStream) throws IOException, JSONException { List list=new ArrayList(); byte[] b=Read(inputStream); String json=new String(b); JSONArray array=new JSONArray(json); for(int i=0;i JSONObject jsonObject=array.getJSONObject(i); News news=new News(jsonObject.getInt("id"), jsonObject.getString("title"), jsonObject.getInt("timelength")); list.add(news); } return list; } private byte[] Read(InputStream inputStream) throws IOException { byte[] data=new byte[1024]; ByteArrayOutputStream outputStream=new ByteArrayOutputStream(); int len=0; while((len=inputStream.read(data))>0){ outputStream.write(data, 0, len); } inputStream.close(); outputStream.close(); byte[] result=outputStream.toByteArray(); return result; } public class mHandler extends Handler { @Override public void handleMessage(Message msg) { switch (msg.what) { case 0:{ Listcontent=(List) msg.obj; List> item=new ArrayList>(); for(News news:content){ HashMap map=new HashMap(); map.put("title", news.getTitle()); map.put("timelength", news.getTimelength()); item.add(map); } SimpleAdapter adapter=new SimpleAdapter(getApplicationContext(),item,R.layout.items,new String[]{"title","timelength"},new int[]{R.id.title,R.id.timelength}); listView.setAdapter(adapter); break; } case 1:{ Toast.makeText(getApplicationContext(), "未找到資訊", Toast.LENGTH_LONG).show(); break; } } } }