MatlabWebWrite中的JSON负载

MatlabWebWrite中的JSON负载,json,matlab,rest,http,Json,Matlab,Rest,Http,我正在尝试使用Matlab发送以下POST请求: 在Matlab中,我尝试了以下方法: API_KEY = 'abc123'; url = 'https://url.to.com/hello/world'; options = weboptions(... 'MediaType', 'application/json', ... 'HeaderFields', {...

我正在尝试使用Matlab发送以下POST请求:

在Matlab中,我尝试了以下方法:

API_KEY                 = 'abc123';
url                     = 'https://url.to.com/hello/world';

options                 = weboptions(...
    'MediaType', 'application/json', ...
    'HeaderFields', {...
    'API_KEY', API_KEY; ...
    'Content-Type' 'application/json'});

payload.('return_type') = 'hello';
payload.('entities')    = ['ent1'];
payload.('events')      = ['legal'];
payload.('fields')      = [];
payload.('filters')     = {};
payload.('start_date')  = '2015-01-01 00:00:00';
payload.('end_date')    = '2016-01-01 00:00:00';
payload.('format')      = 'csv';
payload.('compressed')  = 'false';

response = webwrite(url, payload, options);
但是,这将返回错误:

服务器返回了状态400,并在中显示消息“Bad Request” 对URL请求的响应

我与邮递员尝试了上面的请求,结果成功了。我还验证了我的Matlab头是否正确设置。因此,这一定是我为JSON有效负载部分设置的Matlab。怎么了


更新1:


我注意到,当您运行
jsonencode(payload)
时,它不会返回所需的格式。而且,
“[…]”
会退出。我认为问题就从这里开始,因为那时请求确实变得无效。因此,我们需要一种方法,在必要时加入括号。

在另一个论坛上找到了答案。问题确实在于双括号。我们需要设置如下:

payload.('entities')    = {{'ent1'}};
请在此处阅读更多信息:

payload.('entities')    = {{'ent1'}};