在前后端分離的開發(fā)中,ajax請求已經(jīng)成為了一種不可或缺的方式。其中g(shù)et請求是最為普遍和常用的一種請求方式。通常情況下,我們在get請求中需要傳遞的參數(shù)是以key=value的形式出現(xiàn)的。但是,如果我們的參數(shù)是json格式的話,就需要進行特殊的處理。
$.ajax({ url: "/user", type: "get", data: { id: 1001, data: { name: "Jim", age: 20 } }, success: function(data){ console.log(data); } });
從上面的代碼可以看出,我們在get請求中傳遞的參數(shù)data是一個json格式的數(shù)據(jù)。在傳遞的過程中,我們需要先將其轉(zhuǎn)化為字符串,并使用encodeURIComponent()對字符串進行編碼。最后將編碼后的字符串作為key的值傳遞給后端。在后端中,需要使用URLDecoder.decode()對參數(shù)進行解碼,然后再將其轉(zhuǎn)化為json格式的數(shù)據(jù)進行處理。
@RequestMapping(value="/user", method=RequestMethod.GET) @ResponseBody public String getUser(@RequestParam(value="id") Integer id, @RequestParam(value="data") String data){ String result = ""; try{ String decodeData = URLDecoder.decode(data, "UTF-8"); JSONObject json = JSONObject.fromObject(decodeData); String name = json.getString("name"); Integer age = json.getInt("age"); result = "id: " + id + ", name: " + name + ", age: " + age; }catch(Exception e){ e.printStackTrace(); } return result; }
在后臺中,我們首先對傳遞的json參數(shù)進行了解碼,并將其轉(zhuǎn)化為json對象。在獲取name和age的值時,我們使用了JSONObject的相關(guān)api進行處理。最終將獲取的結(jié)果以字符串的形式返回給前端。
上一篇get請求json文件夾
下一篇c json解析工具