/**
  * {@inheritdoc}
  */
 public function renderJson($data, $status = 200, $headers = array())
 {
     $response = parent::renderJson($data, $status, $headers);
     $data = json_decode($response->getContent(), true);
     if (!array_key_exists('message', $data)) {
         //getFlashBag()->get('notice'
         if ($message = $this->get('session')->getFlashBag()->get('sonata_flash_success')) {
             $data['is_new_menu_item'] = $this->isNewMenuItem;
             $data['status'] = 'success';
         } elseif ($message = $this->get('session')->getFlashBag()->get('sonata_flash_error')) {
             $data['status'] = 'error';
         } elseif ($data['result'] == 'ok') {
             $this->getRequest()->request->all();
             $message = 'flash_' . str_replace('Action', '', $this->getCaller()) . '_success';
             $data['is_new_menu_item'] = $this->isNewMenuItem;
             if ($this->isNewMenuItem) {
                 $data['html'] = $this->placementAction();
             }
             $data['status'] = 'success';
         } else {
             $this->getRequest()->request->all();
             $message = 'flash_' . str_replace('Action', '', $this->getCaller()) . '_error';
             $data['status'] = 'error';
         }
         if ($message) {
             $data['message'] = $this->admin->trans($message);
         }
     }
     if (!array_key_exists('html', $data)) {
         $data['html'] = $this->listAction($this->get('session')->get('admin/last_page_id'));
     }
     if ($response instanceof JsonResponse) {
         $response->setData($data);
     } else {
         $response->setContent(json_encode($data));
     }
     return $response;
 }