json_decode в контроллере Symfony возвращает массив длины 0 - PullRequest
0 голосов
/ 03 мая 2018

Я относительно новичок в Symfony, и я думаю , моя проблема в контроллере, но я не вижу его. Я посылаю действительный JSON через ajax-запрос на мой контроллер. При попытке его декодирования результирующий массив имеет длину 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\"]"]

Итак, то, что отправляется в виде данных json через ajax, также проверено:

{"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;
}

В блоке success моего вызова ajax получен ответ 0.

...