2011-09-09 42 views
6

Via jquery, tôi AJAX/POST json nàylàm thế nào để chuyển đổi một json thành một đối tượng php trong symfony2?

{"indices":[1,2,6]}: 

đến một hành động symfony2. Ngay bây giờ tôi chỉ thực sự quan tâm đến mảng, vì vậy nếu điều này làm cho mọi thứ trở nên dễ dàng hơn, tôi cũng có thể đăng [1,2,6].

Làm cách nào để chuyển đổi điều này thành đối tượng php?


Bằng cách nào đó, điều này không làm việc:

/** 
* @Route("/admin/page/applySortIndex", name="page_applysortindex") 
* @Method("post") 
* @Template() 
*/ 
public function applySortIndexAction() 
{ 
    $request = $this->getRequest(); 
    $j = json_decode($request->request->get('json')); 
    $indices = $j->indices; 
    return array('data'=> $indices); 
} 

đưa ra một báo

: Đang cố gắng để có được tài sản của phi đối tượng trong .../PageController.php dòng 64 (500 Lỗi Máy chủ Nội bộ)

đó sẽ là nơi tôi truy cập vào $ j-> chỉ mục, trong đó $ j có vẻ là rỗng


Các poster:

$.ajax({ 
     type: 'POST', 
     url: "{{ path('page_applysortindex')}}", 
     data: $.toJSON({indices: newOrder}), 
     success: ... 
+0

Tôi đoán bạn không sử dụng "json" như một tên cho điều này POST-tham số – Raffael

+0

Tôi không chủ động sử dụng bất kỳ tên nào cả, tôi sẽ đăng js trên ... – Jan

+0

Ah , vì vậy tôi phải ghi dữ liệu: "data =" + $ .toJSON ({index: newOrder}) và tất cả đều tốt. Có lẽ có một giải pháp tốt hơn cho việc này. – Jan

Trả lời

5

Để có được dữ liệu gửi qua sử dụng cơ thể:

$request = $this->getRequest(); 
$request->getContent(); 

kiểm tra đầu ra và sau đó hành động theo. nhưng điều này sẽ chứa các json.

(vâng, thử nghiệm nó điều này dẫn đến json của bạn.)


nhận được một POST-tham số với tên json từ bên trong một bộ điều khiển:

$request = $this->getRequest(); 
$request->request->get('json'); 

Request-object


$j = json_decode('{"indices":[1,2,6]}'); 

var_dump($j); 

lea ds để:

object(stdClass)#1 (1) { 
    ["indices"]=> 
    array(3) { 
    [0]=> 
    int(1) 
    [1]=> 
    int(2) 
    [2]=> 
    int(6) 
    } 
} 
+0

Cảm ơn rất nhiều! Mọi thứ có thể dễ dàng như vậy nếu bạn có thể hỏi người phù hợp :) – Jan

+1

Arrgh, nhưng làm thế nào để tôi nhận được json từ yêu cầu? – Jan

+0

Tôi dường như không thể đến được với con trai. Tôi đã cập nhật câu hỏi của mình để hiển thị phương thức thực tế được đề cập ... – Jan

Các vấn đề liên quan