//只貼出,核心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;
- }
- }
//把流轉換成byte類
- 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();
- }
- }