из BizTalk Мне нужно отправить файл JSON, который выглядит следующим образом.
[
{
"attr": {
"b587d548-8aa6-42b7-b292-0f3e13452c35": {
"1": "-2.073420455529934786"
}
},
"guid": "80974561-a449-4a94-8b3e-970822b84406",
"anotherGuid": "05060c4c-f0af-46b8-810e-30c0c00a379e",
"lastModified": "2019-11-09T01:44:34.157Z",
"attributes":
{
"4": "2019-11-05T20:30:57.6Z",
"8": "6",
"10": "8",
"13": "7",
"27": "3",
...
},
...
}
]
В схеме BizTalk я не могу определить что-то подобное. Guid
в attr
и имена числовых атрибутов в attributes
не являются фиксированными и могут иметь другие значения.
У меня есть идея реализовать пользовательский компонент конвейера, который преобразует BizTalk XML в OutputJSON. Но я понятия не имею, как решить проблему с именами атрибутов, поскольку они не являются допустимыми именами XML.
Что может быть наиболее элегантным способом решения этой проблемы?
Спасибо зааванс.
ОБНОВЛЕНИЕ с дополнительной информацией
Чтобы получить JSON
как выше, XML
должен выглядеть как недопустимый
<root>
<element>
<anotherGuid>05060c4c-f0af-46b8-810e-30c0c00a379e</anotherGuid>
<attr>
<b587d548-8aa6-42b7-b292-0f3e13452c35>
<1>-2.073420455529934786</1>
</b587d548-8aa6-42b7-b292-0f3e13452c35>
</attr>
<attributes>
<10>8</10>
<13>7</13>
<27>3</27>
<4>2019-11-05T20:30:57.6Z</4>
<8>6</8>
</attributes>
<guid>80974561-a449-4a94-8b3e-970822b84406</guid>
<lastModified>2019-11-09T01:44:34.157Z</lastModified>
</element>
</root>
Чтобы получить действительный XML
, мне нужно изменить недопустимые элементы, т.е. вместо <4 />
может быть <e4 />
, <element name="4" />
или что-то в этом роде. Затем парсер (или что-то еще?) Должен отобразить этот элемент XML
на правильный JSON
один.