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

相关内容