我尝试将以下有效负载 (JSON) 发送到 REST 端点,但是当我在 BizTalk 中使用传统映射来构建 XML 架构,然后在自定义管道中使用 JSON 编码器将其发送出去时,它不会t 在过滤器中包含所需的数组(这是对过滤器记录进行排列的 REST 调用要求,即使其中只有 1 个过滤器记录)
{
"busObId": "9343f8800bd7ce14f0bf0a402d9d38be1a25069644",
"filters": [
{
"fieldId": "937905400191ae67dd03ab4b79968fcbaa264b1a75",
"operator": "eq",
"value": "TIER1WEB02"
}
],
"includeAllFields": false,
"includeSchema": false
}
我考虑过使用消息分配来手动编写 XML 结构,但我不知道如何让 JSON 编码器来排列过滤器元素。
任何人都可以建议我如何确保有效负载不会删除过滤器周围的
[]
?
使用通用转换器将 XML 转换为 JSON 通常不会生成您真正想要的确切 JSON。这是因为转换器不知道您想要什么格式,并且 XML 中通常没有足够的信息来做出正确的猜测。
至少有五类解决方案:
(a) 如果幸运的话,您选择的转换器工具可能会提供自定义转换的选项。
(b) 如果一种转换工具不能产生您想要的输出,您可能会找到另一种可以产生的输出。有很多可供选择。但他们都遇到这个问题,所以不太可能。
(c) 您也许能够在转换之前转换 XML,以便该工具执行正确的操作。
(d) 您通常可以在转换后对 JSON 进行转换以适合所需的格式。
(e) 自己编写转换可能是最简单的,例如使用 XSLT 3.0。
如果我这样做,我会转向(e)。但您的项目的正确答案可能会有所不同。