一、服務器端獲取JSON字符串並解析
方式一:
前端發送一個getJSONString.spring請求,后面加時間是為了保證瀏覽器每次都把它當做一個不同的請求,不調用瀏覽器緩存。
思路:利用JSON.stringify()把一個JS對象實例[object:object]轉化為json格式的字符串。$.post()接受的可選參數data可以是plainObject/String
即key/value的鍵值對或者字符串。
<script src="jquery-1.3.2.js"></script>
<script src="json2.js"></script>
<script>
function userinfo(username, password){
this.username = username;
this.password = password;
}
function sendAjax(){
var userinfoRef = new userinfo('高洪岩', '123');
var jsonStringRef = JSON.stringify(userinfoRef);
$.post("getJSONString.spring?t=" + new Date().getTime(), {
jsonString: jsonStringRef
});
}
</script>
后端代碼:思路:JSONObject.fromObject()方法把json格式字符串轉化為JSONObject即Java對象。
注意:Ajax 發送的請求不會加上當前所在目錄的路徑,表單提交發送的請求會加上 發送請求的文件所在的目錄路徑。
JSONObject.fromObject()是json-lib-2.3-jdk1.5.jar提供的json解析方法。
@RequestMapping(value = "getJSONString")
public String getJSONString(@RequestParam("jsonString") String jsonString) {
JSONObject object = JSONObject.fromObject(jsonString);
System.out.println(object.get("username"));
System.out.println(object.get("password"));
return "test.jsp";
}
方式二:利用SpringMVC提供的從JSON格式字符串自動轉成實體的技術。
