BizTalk 2020 JSON 编码器生成对象的根数组,即以 [ ] 开头

Posted

技术标签:

【中文标题】BizTalk 2020 JSON 编码器生成对象的根数组,即以 [ ] 开头【英文标题】:BizTalk 2020 JSON encoder to produce root array of objects, i.e. begin with [ ] 【发布时间】:2021-06-15 22:04:24 【问题描述】:

关于 BizTalk JSON 编码器的文章很多...

我正在尝试为需要根级数组的第 3 方软件生成 JSON,如下所示:

[
    
     "property" : "value"
   ,
   
     "property" : "value" 
   
]

我正在尝试使用模式控制输出,但我无法在根节点上指定 minOccurs 和 maxOccurs。我也试过“Group Max/Min Occurs”,没有区别。

这不可能吗? 用于将 Array 属性添加到输出 XML 的旧 newtonsoft hack 怎么样? (我也试过这个,但是失败了……)

【问题讨论】:

【参考方案1】:

这类似于BizTalk 2013 - decode JSON array

根据另一个问题的答案,您不能在 XML 模式的根节点处有一个数组。那是用于接收在根处带有数组的 JSON 有效负载,而不是发送一个。但是您的选择是相似的,您需要在 JSON 编码器之后有一个自定义管道组件来删除根,或者有一个自定义管道组件以您想要的方式生成 JSON。

【讨论】:

是的,JSON 后编码自定义管道组件...您知道 BizTalk 2020 是否仍在使用 newtonsoft 吗? Array属性解决方案无论如何都不起作用... @JERKER 是的,带有 CU1 的 Newtonsoft.Json 版本 12.0.3

以上是关于BizTalk 2020 JSON 编码器生成对象的根数组,即以 [ ] 开头的主要内容,如果未能解决你的问题,请参考以下文章

BizTalk 2020 Saxon XSLT 3.0 转换异常

如何在 BizTalk AS2 接收中使用“引用打印”内容传输编码?

可以创建 BizTalk 项目,但不能创建工件

从 BizTalk 2010 迁移到 BizTalk 2020

从 BizTalk WCF-WebHttp 适配器向 Mule 服务发布消息时出错:服务不支持内容类型应用程序/json

BizTalk 中的 FHIR JSON 到 XML 解码