呂德彪 廊坊師範學院資訊科技提高班 十三期
阿新 • • 發佈:2018-12-17
前端傳json物件和json字串的區別
Json物件
前端程式碼
$.ajax({ url: ctx + "membermessagegroupsend/save.do", type: "POST", data: { mgsPkid:messageId,//用於判斷是新增操作還是編輯操作 title: messageName, cinemas: cinemas, memberGroupId: groups, timeTypeWay: timeTypeWay, sendTime: time, groupChooseWay: groupChooseWay, cinemaChooseWay: cinemaChooseWay, smsContent: $("#smsContent").val(), pushContent: $("#pushContent").val() }, })
後端程式碼 方法一:保證前端引數名稱和Model中的欄位名稱一樣,就可以用以下方法
@RequestMapping("/save") @ResponseBody public Result<String> save(MessageGroupSend messageGroupSend) { if(messageGroupSend == null) { return createFailedResult("儲存失敗", ""); } Date now = new Date(); String userId = ShiroUtils.getUserId(); if(StringUtils.isBlank(messageGroupSend.getMgsPkid())) { String msgPkId = IdUtils.uuid2(); messageGroupSend.setMgsPkid(msgPkId); messageGroupSend.setDelFlag(false); } }
方法二:如果前端傳遞的引數和後端的變數名不一樣,可以使用RequestParam 接收
@RequestMapping("/save") @ResponseBody public Result<String> save(@RequestParam(value = "cinemas") String cinemaCode) { if(messageGroupSend == null) { return createFailedResult("儲存失敗", ""); } Date now = new Date(); String userId = ShiroUtils.getUserId(); if(StringUtils.isBlank(messageGroupSend.getMgsPkid())) { String msgPkId = IdUtils.uuid2(); messageGroupSend.setMgsPkid(msgPkId); messageGroupSend.setDelFlag(false); } }
方法三:使用HttpServerletRequest接收
@RequestMapping("/save")
public String getParam(HttpServletRequest request) {
return request.getParameter("cinemas");
}
Json字串
前端程式碼
$.ajax({
url: ctx + "membermessagegroupsend/save.do",
type: "POST",
data: JSON.stringify({
mgsPkid:messageId,//用於判斷是新增操作還是編輯操作
title: messageName,
cinemas: cinemas,
memberGroupId: groups,
timeTypeWay: timeTypeWay,
sendTime: time,
groupChooseWay: groupChooseWay,
cinemaChooseWay: cinemaChooseWay,
smsContent: $("#smsContent").val(),
pushContent: $("#pushContent").val()
}),
})
後端程式碼 方法一:最常用的方式是使用 Requestbody 實體進行接收
@RequestMapping("/save")
public String getParam3(@RequestBody MessageGroupSend messageGroupSend) {
System.out.println(messageGroupSend.toString());
return messageGroupSend.getCinemas();
}
前端JSON物件和JSON字串之間的相互轉換
json字串–>json物件
1.使用原生的js函式進行解析
var obj = eval('(' + str1 + ')');
2.使用jquery外掛提供的工具進行解析
var obj = $.parseJSON( str1 );
json物件 --> json字串
1.使用JSON官網上提供的json2.js類庫物件進行解析
var str = JSON.stringify(str2);
後端JSON物件和JSON字串之間的相互轉換
物件–>json字串(序列化)
String jsonString = JSONObject.toJSONString(school);
json字串–>物件(反序列化)
School school2 = JSONObject.parseObject(jsonString, School.class);
最近,被這樣的東西整懵bi了,總結下以備後用。