歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Android 使用JSON,XML向服務器端獲取資訊(獲取)

//只貼出,核心JSON業務類,因為Struts沒有寫。

  1. package sn.len.jandx.service;  
  2.   
  3. import java.io.InputStream;  
  4. import java.net.HttpURLConnection;  
  5. import java.net.URL;  
  6. import java.util.ArrayList;  
  7. import java.util.List;  
  8.   
  9. import org.json.JSONArray;  
  10. import org.json.JSONObject;  
  11.   
  12. import sn.len.jandx.domain.TestBean;  
  13. import sn.len.jandx.tool.CaseInputStream;  
  14.   
  15. public class VideoService  
  16. {  
  17.     public static List<TestBean> getVideo() throws Exception  
  18.     {  
  19.         //向服務器端拿取數據   
  20.         URL url=new URL("http://xxxx.com?format=json");  
  21.         HttpURLConnection conn=(HttpURLConnection)url.openConnection();  
  22.         conn.setConnectTimeout(5*1000);  
  23.         conn.setRequestMethod("GET");  
  24.         InputStream inStream=conn.getInputStream();  
  25.         byte bytedata[]=CaseInputStream.getByte(inStream);//把流轉換成byte   
  26.         String StringData=new String(bytedata);  
  27.         //一,JSON解析,前提是:服務器端發送JSON數據格式的東西,就用JSON來解析   
  28.         List<TestBean> listbean=VideoService.GetJson(StringData);  
  29.         return listbean;  
  30.         //二,采用XML來解析得到服務器端的數據,就像解析平常解析XML數據一樣,前提是服務器端發送XML數據   
  31.     }  
  32.     public static List<TestBean> GetJson(String jsondata) throws Exception //JSON解析方式   
  33.     {  
  34.         //JSON數據格式 [{id:1,name:"admin",longtime:40},{id:1,name:"admin",longtime:40}]   
  35.         List<TestBean> listBean=new ArrayList<TestBean>();  
  36.         //先把jsondata這個字符串轉換成一個數組   
  37.         JSONArray jsonarray=new JSONArray(jsondata);  
  38.         for(int i=0;i<jsonarray.length();i++)  
  39.         {  
  40.             //再把數組的第i項轉換成一個json對象。   
  41.             JSONObject jsonobj=new JSONObject();  
  42.             //重json對象裡面取值   
  43.             int id=jsonobj.getInt("id");  
  44.             String name=jsonobj.getString("name");   
  45.             int time=jsonobj.getInt("longtime");  
  46.             //把取到的值添加對bean中,並且把bean對象給保存起來   
  47.             TestBean testbean=new TestBean(id,name,time);  
  48.             listBean.add(testbean);  
  49.             //給test重新賦值一下   
  50.             testbean=null;  
  51.         }  
  52.         return listBean;  
  53.           
  54.     }  
  55.     public static List<TestBean> getXml() //XML解析   
  56.     {  
  57.         //利用PULL解析   
  58.         return null;  
  59.     }  
  60. }  
//把流轉換成byte類
  1. package sn.len.jandx.tool;  
  2.   
  3. import java.io.ByteArrayOutputStream;  
  4. import java.io.IOException;  
  5. import java.io.InputStream;  
  6.   
  7. public class CaseInputStream  
  8. {  
  9.     public static byte[] getByte(InputStream inStream) throws IOException  
  10.     {  
  11.         byte b[]=new byte[1024];  
  12.         int n=0;  
  13.         ByteArrayOutputStream byteOutPut=new ByteArrayOutputStream();  
  14.         while((n=inStream.read(b))!=-1)  
  15.         {  
  16.             byteOutPut.write(b);  
  17.         }  
  18.         return byteOutPut.toByteArray();  
  19.     }  
  20. }  
Copyright © Linux教程網 All Rights Reserved