前提:最近在做一个android小软件,想先自己写个简单的服务器进行测试,然后就出现下面的问题。
服务器部分代码(经测试在网页上可以显示封装后的数据)
try
{
ArrayList<Map<String,String>> list=new ArrayList<Map<String,String>>();
String sql="select name from Conn_List where department='"+part+"'";
conn=Sqlcon.getConnection();
stmt=conn.prepareStatement(sql);
rs=stmt.executeQuery();
while(rs.next())
{
Map<String,String> map=new HashMap<String,String>();
map.put("name", rs.getString("name"));
list.add(map);
}
JSONStringer stringer=new JSONStringer();
stringer.array();
for(Map<String,String> map:list)
{
stringer.object().key("name").value(map.get("name")).endObject();
}
stringer.endArray();
response.getOutputStream().write(stringer.toString().getBytes("UTF-8"));
response.setContentType("text/json; charset=UTF-8");
}
android客户端部分代码(解析过程,最终返回一个list,将list放入我自己写好的自定义继承adapter)
private ArrayList<Map<String,String>> GetJson() throws Exception
{
ArrayList<Map<String,String>> list=new ArrayList<Map<String,String>>();
URL url=new URL("http://192.168.1.109:8080/ServletServer/ListServlet");
HttpURLConnection conn=(HttpURLConnection)url.openConnection();
conn.setRequestMethod("GET");
if(conn.getResponseCode()==200)
{
InputStream in=conn.getInputStream();//获取数据
list=parseJSON(in);//解析数据
}
return list;
}
private ArrayList<Map<String,String>> parseJSON(InputStream in) throws Exception
{
ArrayList<Map<String,String>> list=new ArrayList<Map<String,String>>();
Map<String,String> map=null;
String strResult=read(in);//转换为字符串数据
JSONArray array=new JSONArray(strResult);******************************报错处
for(int i=0;i<array.length();i++)
{
JSONObject object=array.getJSONObject(i);
map=new HashMap<String,String>();
map.put("name", object.getString("name"));
list.add(map);
}
return list;
}
private String read(InputStream in) throws Exception
{
ByteArrayOutputStream bout=new ByteArrayOutputStream();
byte[] buf=new byte[4096];
int len=-1;
while((len=in.read(buf,0,4096))!=-1)
{
bout.write(buf,0,len);
}
buf=null;
return new String(bout.toByteArray(),"UTF-8");
}
报错部分先是一段黄色报错,内容是End of input at character 0 of,位置就是上面提到的报错处。
接下去是一段红色报错,内容是在我的自定义继承adapter里面的getCount()有空指针,而getCount()里面的内容是return list.size();。
求大神指导没有人么~代码格式化一下,这么乱,懒得看额。。。没想到粘贴过来的时候变成这样了,不过已经解决了。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。