首页 > 解决方案 > 通过 AJAX 发布时如何忽略 JSON 数据?

问题描述

实际上我的 JSON 数据作为我通过 AJAX 发送的对象是:

{
  plotId: "668",
  geogPhysZone: "4",
  districtCode: "4",
  posMethod: "1",
  sRS: "45",
  crewLeader: "",
  date: "",
  distanceToOtherLanduse: "",
  distanceToSettlement: ""
}

但是null来自 JSON 的值在发布时在我的表列中不可用,所以我得到 500(内部服务器错误)。因此,在从 AJAX 发送时,我想忽略为空的值。

单击按钮时调用我的代码:

$("#generalSubmitButton").click(function(event) {
  event.preventDefault();

  var form_data = Object.assign($("#generalForm1").toObject(), $("#headForm").toObject());

  console.log(form_data);

  $.ajax({
    url: A_PAGE_CONTEXT_PATH + "/form/api/plot-general/save",
    method: "post",
    contentType: "application/json",
    dataType: "json",
    data: JSON.stringify(form_data),
    success: function() {
      alert("Successful");
    },
    error: function(response) {
      switch (response.status) {
        case 409:
          alert("error");
      }
    }
  });
});    

标签: javascriptjqueryjsonajax

解决方案


您可以遍历对象并消除没有价值的对象。

var myObject= {plotId: "668", geogPhysZone: "4", districtCode: "4", posMethod: "1", sRS: "45",crewLeader:"",date:"",distanceToOtherLanduse:"",distanceToSettlement:""};

Object.keys(myObject).forEach(function(key) {
  var val = myObject[key];
  if($.trim(val).length == 0){ //delete which are null or blank
    delete myObject[key];
  }
});

演示


推荐阅读