编码json后,我有额外的空格,我怎么能删除它?

时间:2016-09-21 07:28:59

标签: php json

我有以下要编码为jSon的数组:

if ( isset($_POST['shift'])) {
  $ShiftSelected =  intval($_POST['shift']);
} elseif ($_POST['shift'] == 'B') {
  $ShiftSelected = 1;
} else {
  $ShiftSelected = 0;
}

$(function() {
  $(".table-row").click(function() {
    $("#form").attr('action', '?action=HS');
    $("#selectDate").val($(this).data("date"));
    $("#selectShift").val($(this).data("shift"));
    $("#form").submit();
  }); 
});

array(4) {
  ["workcenter"]=> string(1) "0" 
  ["Week"]=> string(2) "38"
  ["date"]=> string(10) "16-09-2016"
  ["shift"]=>string(1) "B"
}

我正在使用以下方法进行编码:

$output = array("success" =>0,"msg" => "The e-mail address is already in use");

结果我得到以下字符串:

echo json_encode($output);

我看起来很完美,但我最后还有一个额外的空格,因此阻止我使用jSon字符串。谁能帮助我如何从最后删除这个空格?

1 个答案:

答案 0 :(得分:0)

可能在结束PHP标记后有一些内容。举个例子:

<?php
    $output = array("success" =>0,"msg" => "The e-mail address is already in use");
    echo json_encode($output);
?>   
\n

现在我无法在代码块中表示新行,但假设\n是一行返回。现在在PHP标记之后它将回显json,然后在PHP标记之后它回显任何内容,例如新行。但是,您可以删除结束标记。对于open标记也是如此,并且同样会输出任何内容,但如果它位于文件的顶部则更容易发现。

或者至少这是我最好的猜测,如果你有{...}\n作为你的json输出。

这是一个非常容易犯的错误,很难发现。这可能看起来很奇怪,但确实会发生这种情况。