1. 程式人生 > >呂德彪 廊坊師範學院資訊科技提高班 十三期

呂德彪 廊坊師範學院資訊科技提高班 十三期

前端傳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了,總結下以備後用。