2017-07-27 70 views
6

Próbuję stworzyć niestandardowe Api w magneto2. Jej wywołanie POST, w którym próbuję wysłać tablicę asocjacyjną jak poniżej,Magento 2 Rest Api - Asocjacyjna macierz na żądanie Param

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

Na powyższym formacie daję adnotacji param jak string[]. Działa, jeśli nie przekazałem w nim danych place. Ale jeśli jestem przechodzącej place danych swojego błędu rzucania jak poniżej,

Array to string conversion 

rzeczywisty problem jest nie jestem w stanie przekazać tablicę asocjacyjną na żądanie param. Czy ktoś może mi w tym pomóc?

Próbowałem również, tworząc niestandardowy typ obiektu. W tym też mogę podać tylko typ string[]. Więc nie mogę dodać więcej danych json w nim.

Odpowiedz

1

możesz utworzyć tablicę w PHP i użyć funkcji do kodowania do json dla np.

$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ędziesz musiał użyć json_decode, aby otrzymać swoje wartości później. Mam nadzieję, że to pomoże!

+0

tak. w porządku. Ale jakakolwiek inna opcja przekazywania danych json bezpośrednio? –

+0

proszę podać swój emai id? –

+0

dlaczego potrzebujesz innej opcji? do wysyłania bezpośrednio, pod linkiem poniżej może pomóc. https://stackoverflow.com/questions/21271140/curl-and-php-how-can-i-pass-a-json-through-curl-by-put-post-get – Pallavi