Android 使用JSON,XML向服务器端获取资讯(获取)
Android 使用JSON,XML向服务器端获取资讯(获取)
//只贴出,核心JSON业务类,因为Struts没有写。
- package sn.len.jandx.service;
- import java.io.InputStream;
- import java.net.HttpURLConnection;
- import java.net.URL;
- import java.util.ArrayList;
- import java.util.List;
- import org.json.JSONArray;
- import org.json.JSONObject;
- import sn.len.jandx.domain.TestBean;
- import sn.len.jandx.tool.CaseInputStream;
- public class VideoService
- {
- public static List<TestBean> getVideo() throws Exception
- {
- //向服务器端拿取数据
- URL url=new URL("http://xxxx.com?format=json");
- HttpURLConnection conn=(HttpURLConnection)url.openConnection();
- conn.setConnectTimeout(5*1000);
- conn.setRequestMethod("GET");
- InputStream inStream=conn.getInputStream();
- byte bytedata[]=CaseInputStream.getByte(inStream);//把流转换成byte
- String StringData=new String(bytedata);
- //一,JSON解析,前提是:服务器端发送JSON数据格式的东西,就用JSON来解析
- List<TestBean> listbean=VideoService.GetJson(StringData);
- return listbean;
- //二,采用XML来解析得到服务器端的数据,就像解析平常解析XML数据一样,前提是服务器端发送XML数据
- }
- public static List<TestBean> GetJson(String jsondata) throws Exception //JSON解析方式
- {
- //JSON数据格式 [{id:1,name:"admin",longtime:40},{id:1,name:"admin",longtime:40}]
- List<TestBean> listBean=new ArrayList<TestBean>();
- //先把jsondata这个字符串转换成一个数组
- JSONArray jsonarray=new JSONArray(jsondata);
- for(int i=0;i<jsonarray.length();i++)
- {
- //再把数组的第i项转换成一个json对象。
- JSONObject jsonobj=new JSONObject();
- //重json对象里面取值
- int id=jsonobj.getInt("id");
- String name=jsonobj.getString("name");
- int time=jsonobj.getInt("longtime");
- //把取到的值添加对bean中,并且把bean对象给保存起来
- TestBean testbean=new TestBean(id,name,time);
- listBean.add(testbean);
- //给test重新赋值一下
- testbean=null;
- }
- return listBean;
- }
- public static List<TestBean> getXml() //XML解析
- {
- //利用PULL解析
- return null;
- }
- }
- package sn.len.jandx.tool;
- import java.io.ByteArrayOutputStream;
- import java.io.IOException;
- import java.io.InputStream;
- public class CaseInputStream
- {
- public static byte[] getByte(InputStream inStream) throws IOException
- {
- byte b[]=new byte[1024];
- int n=0;
- ByteArrayOutputStream byteOutPut=new ByteArrayOutputStream();
- while((n=inStream.read(b))!=-1)
- {
- byteOutPut.write(b);
- }
- return byteOutPut.toByteArray();
- }
- }
评论暂时关闭