1. 程式人生 > >返回JSON資料到客戶端

返回JSON資料到客戶端

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;
}
}
}

}