如果值中有空格或null,则为JSON错误

时间:2017-09-27 03:14:42

标签: json

我有三个变量,我想在更改下拉列值时将它们转移到另一个函数,如下所示:

$.each(data, function () {
  var jName = this.job_name;
  var jInv = this.job_inv;
  var jDwg = this.job_dwg;

  var jobVal = {
    "job_name": jName,
    "job_inv": jInv,
    "job_dwg": jDwg
  };

  jobVal = JSON.stringify(jobVal);
  $('#job').append('<option value=' + jobVal + '>' + this.job_inv + " " + this.job_name + this.job_dwg + '</option>');

});

和第二个功能:

$('#job').change(function () {
  $('#itemList').empty();

  var jobVal = JSON.parse($('#job').val());
  var jName = jobVal.job_name;
  var jInv = jobVal.job_inv;
  var jDwg = jobVal.job_dwg;
  $('#txt1').val(jName);

  $.getJSON('/Demo/getItem', {
    job_name: jName,
    job_inv: jInv,
    job_dwg: jDwg
  }, function (data) {

    var count = 0;
    $.each(data, function () {
      count += 1;
      $('#itemList').append('<tr><td>' + count + '</td><td>' + this.item +
        '</td><td>' + this.description + '</td ><td >' +
        this.quantity + '</td ><td >' + this.unitPrice +
        '</td ><td > ' + this.itemPrice + '</td ></tr>');
    });
  }).fail(function (jqXHR, textStatus, errorThrown) {
    alert('Error getting Items!');
  });
});

一切都很有效,直到其中一个变量包含空格或空值。任何解决方案都非常感谢。

1 个答案:

答案 0 :(得分:0)

您必须通过以下代码

在数据输入时检查您的json值

jobVal = JSON.stringify(jobVal); $('#job').append('<option value=' + jobVal.replace("", "_") + '>' + this.job_inv.replace("", "_") + " " + this.job_name.replace("", "_") + this.job_dwg.replace("", "_") + '</option>');

JSON值必须是对象,数组,数字或字符串,或者是其中之一 以下三个字面名称:

false null tr​​ue