Symfony控制器中的json_decode返回长度为0的数组

时间:2018-05-03 04:07:14

标签: php json symfony decode

我对Symfony来说比较新,而我认为我的问题在我的控制器中,但看不到它。我通过ajax请求向我的控制器发送有效的JSON。在尝试解码时,结果数组的长度为0,就像我的JSON没有被正确解码或者getContents()正确返回一样?

JS / AJAX:

$('#aggregate').on('click',function(){
  var sorted = [];
  $('.sortable-items').each(function(){
      sorted.push(JSON.stringify($(this).sortable('toArray'))); 
  });
  console.log(sorted);
  $.ajax({
    url: '/documentwarehouse/items/aggregate',
    type: "POST",
    contentType : 'application/json',
    data: {"sorted": sorted},
    success: function (data){
        alert(data);
    }, error: function(data){
        alert("Sorry");
    }
  });
});

示例JSON存储在var sorted中,并通过JSONlint验证:

["[\"list1_23\",\"list1_24\",\"list1_16\",\"list1_17\",\"list1_19\"]", "[\"list2_22\"]", "[\"list4_21\"]"]

因此,通过ajax发送的json数据也会被验证:

{"sorted":[" . [\"list1_23\",\"list1_24\",\"list1_16\",\"list1_17\",\"list1_19\"]", "[\"list2_22\"]", "[\"list4_21\"]"]}

控制器:

public function aggregateAction(Request $request){
  $arrayOfListArrays = json_decode($request->getContent(),true);
  $response = new JsonResponse([sizeof($arrayOfListArrays)]);
  $response->send();
  return $response;
}

在我的ajax调用的success块中收到的响应是0

0 个答案:

没有答案