Json資料 傳遞方式
阿新 • • 發佈:2019-02-20
json除了可以用於前臺傳遞,還可用於後臺之間傳遞。它可以傳遞List,Map,Bean等型別的資料。
例如: User u1=new User();
u1.setUsername("zy");u1.setPassword("123");
User u2=new User();
u2.setUsername("msl");
u2.setPassword("456");
List list = new ArrayList(); //把兩個物件放進list中
list.add(u2);
JSONArray jsonArray = JSONArray.fromObject( list ); //把list放進json陣列 Map map = new HashMap();
map.put("message", "111");
map.put("users", jsonArray); //把json陣列做為一個值放進Map中 JSONObject jsonObject = JSONObject.fromObject(map); //
out.print(jsonObject); // 傳遞json
傳遞的json格式為: {"message":"111","users":[{"password":"123","username":"zy"},{"password":"456","username":"msl"}]}
在接收端的java檔案中取:
returnJson是從輸入流中得到的json格式的字串。輸出為:
{"message":"111","users":[{"password":"123","username":"zy"}, {"password":"456","username":"msl"}]}
if(returnJson !=null&& returnJson !=""){
String strJson = returnJson.replace("?(", "").replace(")", "").replace(";", "");
if(strJson.startsWith("{")){
JSONObject jsonObject = JSONObject.fromObject(strJson);
JSONArray jsonArray = JSONArray.fromObject(jsonObject.get("users"));
for (int i = 0, len = jsonArray.size(); i < len; i++) {
JSONObject jsonUser = jsonArray.getJSONObject(i);
User vo = (User)JSONObject.toBean(jsonUser, User.class);
System.out.println(vo.getUsername()+":"+vo.getPassword());
}
}
}