SpringMvc 服务端发布json数据+android客户端解析json数据

一、SpringMvc 服务端发布json数据

1、导入必须的JAR包

jackson-annotations-2.4.1.jar

jackson-core-2.4.1.jar

jackson-databind-2.4.1.jar

 

2、配置文件同一般的springmvcweb项目

 

3、控制器

采用@ResponseBody将返回转换成json

@Controller

publicclassJsonController {

   

    @RequestMapping("/test1")

    @ResponseBody

    publicboolean test1(){

        returntrue;

    }

   

    @RequestMapping("/test2")

    @ResponseBody

    public User test2(){

        Useruser1=newUser();

        user1.setUsername("kagami");

        user1.setPassword("1234567");

        return user1;

    }

   

    @RequestMapping("/test3")

    @ResponseBody

    public List<String> test3(){

        ArrayList<String>al1=newArrayList<>();

        al1.add("aaa");

        al1.add("bbb");

        al1.add("ccc");

        al1.add("ddd");

        return al1;

    }

   

    @RequestMapping("/test4")

    @ResponseBody

    public List<User>test4(){

        ArrayList<User>al_user=newArrayList<>();

        for(int i=0;i<10;i++){

            Useruser1=newUser();

            user1.setUsername("kagami"+i);

            user1.setPassword("1234567"+i);

            al_user.add(user1);

           

        }

        return al_user;

    }  

}

二、android客户端解析json数据

1.写一个工具类:

使用HttpClient的httpGet请求à得到返回的HttpEntityà用EntityUtils.toString()方法把HttpEntity转换成字符串à把字符串封装为jsonArray对象à再用jsonArray.getJSONObject(i)方法得到每一个json对象à最后用jsonObject.getString("键值对名")得到每一个键值。

public class HttpUtil {
	
	public static List<User> getJson(String ServerUrl) throws ClientProtocolException, IOException, JSONException{
		ArrayList<User> aluser=new ArrayList<User>();
		HttpClient httpClient=new DefaultHttpClient();
		HttpGet httpGet=new HttpGet(ServerUrl);
		HttpResponse response=httpClient.execute(httpGet);
		StatusLine sl=response.getStatusLine();
		
		if(sl.getStatusCode()==HttpStatus.SC_OK){
			HttpEntity httpEntity=response.getEntity();
			String jsonString=EntityUtils.toString(httpEntity);
			JSONArray jsonArray=new JSONArray(jsonString);
			for(int i=0;i<jsonArray.length();i++){
				JSONObject jsonObj=jsonArray.getJSONObject(i);
				User user=new User();
				user.setUsername(jsonObj.getString("username"));
				user.setPassword(jsonObj.getString("password"));
				aluser.add(user);
			}
			return aluser;
		}else{
			return null;
		}
		
	}

}

2.在UI线程里调用该方法,注意耗时操作必须放在工作线程里,如用AsyncTask封装。

此外,记得在AndroidManifest 里加网络访问权限。

 



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章