前端传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了,总结下以备后用。