什么是';集合的有效数组格式';


What is meant by 'a valid array format for collections'?

当调用REST API方法时,我得到一个错误

处理请求流时出错。有效负载必须表示集合的有效数组格式。

但在搜索时:

集合的有效数组格式

我经常回来,但没有什么能澄清这是什么意思。我猜我发送的数据无效(目前我正在发送array('foo' => 'Bar')),但这可能不正确。

有人知道这里发生了什么吗?或者我可以检查什么?

ExactOnline的文档(我正在张贴到)不够。它只说明了它们有哪些字段,但没有说明这类错误消息。

==========================

好的,这需要澄清,我的错!

如文所述,我通过他们的API与ExactOnline进行沟通。

我正在调用发布销售订单的方法。有了这些,我正在使用Exact在他们的网站上提供的一组脚本(供开发人员使用)。

第页:https://start.exactonline.nl/docs/HlpRestAPIResourcesDetails.aspx?name=SalesOrderSalesOrders

在"POST"下,您可以读取必填字段,其中"SalesOrderLines"就是其中之一。它没有告诉我它期望什么或以什么形式。

我将数组封装在json_encode中,然后重试,但没有成功。它仍然告诉我同样的错误。

我目前正在使用同一个ExactOnline API。不得不说,文档中确实缺乏关于这个主题的信息!

要为集合创建一个有效的数组,您必须使用以下基础:

$array = array(
   'InvoiceTo' => 'bc960e43-be9d-409c-9cfe-31ce56cc3238',
       'SubscriptionLines' => array(
           array('Item' => '7e50702b-5bbf-4b77-ab73-5dad50016e82')
       )
)

此列表中的json_encode($array)为:

{
"InvoiceTo":"bc960e43-be9d-409c-9cfe-31ce56cc3238",
    "SubscriptionLines":[
        {"Item":"7e50702b-5bbf-4b77-ab73-5dad50016e82"}
    ]
}

因此,这里的重要部分是在SubScriptionLines中执行数组(array())。这告诉JSON您想要使用JSON数组而不是JSON对象表示法。

对于您的特定问题,您需要将密钥更改为SalesOrder文档中给出的密钥。这里并没有包括api的所有指令字段,因为这个解决方案是针对订阅的。然而,原则是一样的。

希望这将有助于您和其他人充分实现准确的API:)

如何序列化负载?如果它是JSON格式的,那么一个集合将如下所示:

[
    {
        "foo": "bar"
    },
    {
        "foo": "baz"
    }
]