2017-07-27 23 views
6

Tôi đang cố gắng tạo Api tùy chỉnh trong magneto2. Its a CALL POST, trong đó tôi đang cố gắng để gửi mảng kết hợp như dưới đây,Magento 2 Rest Api - Associative Array Trong Yêu cầu Param

{ 
    "data": {  
     "testData": { 
      "title": "Test 01",   
      "place": { 
       "key": "value" 
      } 
     } 
    } 
} 

Đối với định dạng trên tôi đang đưa ra các chú thích param như string[]. Hoạt động của nó Nếu tôi không vượt qua place dữ liệu trong đó. Nhưng nếu tôi đang đi qua place dữ liệu lỗi ném nó như dưới đây,

Array to string conversion 

vấn đề thực tế là tôi không thể vượt qua mảng kết hợp trong yêu cầu param. bất cứ ai có thể vui lòng giúp tôi về điều này?

Tôi đã thử bằng cách tạo một loại đối tượng tùy chỉnh. Trong đó tôi cũng có thể chỉ cho loại string[]. Vì vậy, tôi không thể thêm ngày càng nhiều dữ liệu json trong đó.

Trả lời

1

bạn có thể tạo mảng bằng PHP và sử dụng hàm để mã hóa thành json, ví dụ:

$arr= array('val1'=>array('your val1', 'your val2'), 
    'val2'=>array('your val1', 'your val2'), 
    ); 

    $data = json_encode($arr); 
// if you want to set in url 
$client = new Zend_Http_Client($uri); 
$client->setRawData($data, 'application/json')->request('POST'); 

bạn sẽ cần phải sử dụng json_decode để nhận giá trị sau này. Hy vọng điều này sẽ hữu ích!

+0

có. đó là tốt. Nhưng bất kỳ tùy chọn khác để vượt qua dữ liệu json direcly? –

+0

id emai của bạn? –

+0

lý do tại sao bạn cần một tùy chọn khác? để gửi trực tiếp, bên dưới liên kết có thể trợ giúp. https://stackoverflow.com/questions/21271140/curl-and-php-how-can-i-pass-a-json-through-curl-by-put-post-get – Pallavi

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