当前位置:编程学习 > JAVA >>

安卓怎么调取webservice输出的josn类型

package cn.zjvcc;

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.JSONException;
import org.json.JSONObject;

import android.R;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;

public class A extends Activity
{
public static List<TestBean> getVideo() throws Exception
{
//向服务器端拿取数据
URL url=new URL("http://sx.zjvcc.edu.cn/webservice/WebNews.asmx/GetNoticeAll?schoolid=4");
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=A.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=jsonarray.optJSONObject(i);
//重json对象里面取值
int id=jsonobj.getInt("id");
String name=jsonobj.getString("name"); 
int time=jsonobj.getInt("longtime");
TestBean testbean=new TestBean();
testbean.getNe_Title();
testbean.getNe_NewsID();
System.out.println(testbean.getNe_NewsID()+testbean.getNe_Title());
listBean.add(testbean);
//给test重新赋值一下
testbean=null;
}
return listBean;

}

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
TestBean testbean=new TestBean();
testbean.getNe_Title();
testbean.getNe_NewsID();
System.out.println(testbean.getNe_NewsID()+testbean.getNe_Title());

}



public static List<TestBean> getXml() //XML解析
{
//利用PULL解析
return null;
}
}

这是代码,运行发生以下错误
01-12 08:19:59.689: WARN/ActivityManager(68): Launch timeout has expired, giving up wake lock!
01-12 08:20:00.607: WARN/ActivityManager(68): Activity idle timeout for HistoryRecord{43fb4ba0 cn.zjvcc/.A}
01-12 08:20:05.720: DEBUG/dalvikvm(128): GC_EXPLICIT freed 257 objects / 13856 bytes in 108ms
01-12 08:20:20.104: INFO/System.out(739): 0null
01-12 08:21:12.522: DEBUG/SntpClient(68): request time failed: java.net.SocketException: Address family not supported by protocol
01-12 08:26:12.527: DEBUG/SntpClient(68): request time failed: java.net.SocketException: Address family not supported by protoco
是不是网址写法错误 还是其他?
怎么改呢 webservice Java  安卓 Java 安卓 --------------------编程问答-------------------- 对了  网页只能在学校局域网打开 ,在外网打不开。这会影响吗 --------------------编程问答-------------------- 没人吗????????????
补充:Java ,  Eclipse
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,