JSON编码器生成JSON消息,在BizTalk 2016中添加空引号字符

JSON编码器生成JSON消息,在BizTalk 2016中添加空引号字符,biztalk,biztalk-mapper,biztalk-2013r2,biztalk-2016,Biztalk,Biztalk Mapper,Biztalk 2013r2,Biztalk 2016,我的XML消息 <ns0:rootNode xmlns:ns0="http://project.Schemas.rootNode"> <bitmap></bitmap> </ns0:rootNode> 但我期待在下面的格式 { "bitmap": null } 出于某种原因,BizTalk 2013 R2无法按预期进行转换,但BizTalk 2016无法进行相同的转换 我曾尝试将位图转换为字符串、布尔值和日期时间数据类型,但

我的XML消息

<ns0:rootNode xmlns:ns0="http://project.Schemas.rootNode">  
  <bitmap></bitmap>
</ns0:rootNode>
但我期待在下面的格式

{
      "bitmap": null
}
出于某种原因,BizTalk 2013 R2无法按预期进行转换,但BizTalk 2016无法进行相同的转换

我曾尝试将位图转换为字符串、布尔值和日期时间数据类型,但未能成功


是否有任何建议或自定义管道是我唯一的选择?

因此,根据我的博文,他们修复了BizTalk 2013 R2中存在的一个问题

问题:BizTalk JSON编码器将XML中的空格更改为JSON中的null
详细信息:如果您使用JSON编码器,并且有一个空元素,则该元素在JSON有效负载中变为null。
更多详细信息:
解决方法:使用BRE管道,并将消息正文中的字符串
“:null
替换为字符串
”:“
(来自的初始概念)。
注意:上述解决方法有一个意外的副作用,即它会导致添加BOM表。这可能会导致某些系统出现问题

如果您想让它
null
,可能需要在架构中的该字段上将xsd nillable属性设置为true,并在有效负载中设置
xsi:nil=“true”


除此之外,您还必须执行与我们为BizTalk 2013 R2实施的修复相反的操作。

以下是BizTalk 2016 JSON编码器的当前行为

输入XML:

<test>
    <a></a>
    <b>test</b>
    <c>NULL</c>
    <d/>
</test>
{
  "test": {
    "a": "",
    "b": "test",
    "c": "NULL",
    "d": null
  }
}
为了生成json空值,元素应采用自动关闭标记形式

{
  "test": {
    "a": "",
    "b": "test",
    "c": "NULL",
    "d": null
  }
}