一、服务器端获取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格式字符串自动转成实体的技术。