Мне нужно подключить услугу REST через BizTalk. Служба возвращает ответ JSON, как показано ниже. Когда порт ответа BizTalk пытается декодировать сообщение JSON, я получаю сообщение об ошибке преобразования JSON в XML. Эта ошибка возникает из-за встроенных тегов HTML в сообщении JSON.BizTalk JSON Deserialize
Ошибка:
(There was a failure executing the response(receive) pipeline: "Avansas.Paritus.Suggest.T.JSONReceive, Avansas.Paritus.Suggest.T, Version=1.0.0.0, Culture=neutral, PublicKeyToken=7b2984270a9ffd13" Source: "JSON decoder" Send Port: "Avansas.Ibrahim.Suggest.T.SendPort" URI: "api1.test.com/services/rest"; Reason: Unexpected character encountered while parsing value: <. Path '', line 0, position 0.)
Для примера:
, как показано ниже ответного сообщения имеет элемент этикетки в формате JSON. Элемент label имеет текст с тегом html (Город), поэтому, когда BizTalk пытается конвертировать JSON в XML, я получаю сообщение об ошибке. Я думаю, что BizTalk пытается преобразовать JSON как рисунок 2, но я хочу преобразовать его как рисунок 3.
Как я могу решить эту проблему?
Есть ли способ передать передать на оркестровку без какой-либо схемы?
Рисунок1
{
"suggestion": [
{
"id": "[31 31 31 30 30 39]",
"label": "Global <b>City</b> 2. Etap Global <b>Cıty</b> ",
"value": "Global <b>City</b> 2. Etap Villaları "
},
{
"id": "[39 33 36 32 35 36]",
"label": "<b>City</b> Aqua Villas Sk. Kuşadası Aydın",
"value": "<b>City</b> Aqua Villas Sk. Kuşadası Aydın"
}
]
}
Рисунок 2:
<root>
<suggestion>
<id>[31 31 31 30 30 39]</id>
<label>Global
<b>City</b> 2. Etap Global
<b>Cıty</b>
</label>
<value>Global
<b>City</b> 2. Etap Villaları
</value>
</suggestion>
<suggestion>
<id>[39 33 36 32 35 36]</id>
<label>
<b>City</b> Aqua Villas Sk. Kuşadası Aydın
</label>
<value>
<b>City</b> Aqua Villas Sk. Kuşadası Aydın
</value>
</suggestion>
</root>
Рисунок 3:
<root>
<suggestion>
<id>[31 31 31 30 30 39]</id>
<label>Global
<b>City</b> 2. Etap Global
<b>Cıty</b>
</label>
<value>Global
<>City</b> 2. Etap Villaları
</value>
</suggestion>
<suggestion>
<id>[39 33 36 32 35 36]</id>
<label>
<b>City</b> Aqua Villas Sk. Kuşadası Aydın
</label>
<value>
<b>City</b> Aqua Villas Sk. Kuşadası Aydın
</value>
</suggestion>
</root>
Также моя служба может возвращать ответ xml, и когда я пытаюсь обработать xml-ответ, получите ошибку ниже.
XML Error There was a failure executing the response(receive) pipeline: "Microsoft.BizTalk.DefaultPipelines.XMLReceive, Microsoft.BizTalk.DefaultPipelines, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" Source: "XML disassembler" Send Port: "aaa.bbb.Suggest.T.SendPort" URI: " https://api1.test.com/services/rest " Reason: Finding the document specification by message type "html" failed. Verify the schema deployed properly
и XML-ответ, как показано ниже
<?xml version="1.0" encoding="UTF-8"?>
<suggestions>
<suggestion>
<id>111011</id>
<label>Global <b>Cıty</b> 1. Etap Vıllaları Sokak</label>
<value>Global Cıty 1. Etap Vıllaları Sokak</value>
</suggestion>
<suggestion>
<id>111009</id>
<label>Global <b>Cıty</b> 2. Etap Vıllaları Sokak</label>
<value>Global Cıty 2. Etap Vıllaları Sokak</value>
</suggestion>
</suggestions>
Можете ли вы разместить сообщение об ошибке? –
Какую версию BizTalk вы используете? (2013 R2) – ibrahimsen
Можете ли вы разместить сообщение об ошибке? (произошел сбой выполнения конвейера ответа (получения): «Avansas.Paritus.Suggest.T.JSONReceive, Avansas.Paritus.Suggest.T, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = 7b2984270a9ffd13« Источник: JSON-декодер «Отправить порт:« Avansas.Ibrahim.Suggest.T.SendPort »URI:« https://api1.test.com/services/rest »Причина: Неожиданный символ, встречающийся при анализе значения: <. Path '', line 0, позиция 0. ) – ibrahimsen