2017-07-27 68 views
6

我正尝试在magneto2中创建自定义Api。它是一个POST调用,在我试图发送关联数组像下面,Magento 2 Rest Api - 请求参数中的关联数组

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

对于上述格式我给帕拉姆标注为string[]。它的工作如果我没有通过place数据。但是,如果我传递place数据的投掷的错误像下面,

Array to string conversion 

实际的问题是我不能够通过关联数组中请求PARAM。任何人都可以帮助我吗?

我也尝试通过创建自定义对象类型。在这一点上,我也只能给string[]类型。所以我不能在其中添加更多的json数据。

回答

1

您可以在PHP中创建数组并使用函数将其编码为json。

$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'); 

,你将需要使用json_decode后得到你的价值观。 希望这有助于!

+0

是的。没关系。但任何其他选项直接传递json数据? –

+0

你的emai编号好吗? –

+0

为什么你需要另一种选择? 直接发送,下面的链接可以帮助。 https://stackoverflow.com/questions/21271140/curl-and-php-how-can-i-pass-a-json-through-curl-by-put-post-get – Pallavi