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 里加網絡訪問權限。

 



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