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 2010 迁移到 BizTalk 2020
从 BizTalk WCF-WebHttp 适配器向 Mule 服务发布消息时出错:服务不支持内容类型应用程序/json