Конвейер кодировщика JSON BizTalk, генерирующий неверный объект JSON из XSD - PullRequest
0 голосов
/ 25 декабря 2018

Я использую конвейер BizTalk с кодировщиком JSON для преобразования XML в JSON.Я создал XSD, но в сгенерированном JSON #text вместо просто значения для моих элементов.

Есть идеи, что я делаю неправильно?

<xs:schema attributeFormDefault="unqualified"      elementFormDefault="unqualified"     targetNamespace="http://BookingEngine.Schemas.JSONSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="root">
    <xs:complexType>
      <xs:sequence>
    <xs:element minOccurs="1" name="affiliate_reference_id" type="xs:unsignedShort" />
    <xs:element minOccurs="1" name="hold" type="xs:boolean" />
    <xs:element minOccurs="1" maxOccurs="unbounded" name="rooms">
      <xs:complexType>
        <xs:sequence>
          <xs:element minOccurs="1" name="email" type="xs:string" />

        </xs:sequence>
      </xs:complexType>
    </xs:element>
    <xs:element minOccurs="1" maxOccurs="unbounded" name="payments">
      <xs:complexType>
        <xs:sequence>
          <xs:element minOccurs="1" name="type" type="xs:string" />

        </xs:sequence>
         </xs:complexType>
        </xs:element>
        <xs:element minOccurs="1" name="affiliate_metadata" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

преобразуется в следующееJSON

{
  "affiliate_reference_id": {
    "#text": "4480"
  },
  "hold": {
    "#text": "false"
  },
  "rooms": [
    {
      "email": "john@example.com"
    }
  ],
  "payments": [
    {
      "type": "customer_card"
    }
  ]
}

ожидаемые результаты будут

{
  "affiliate_reference_id": "4480",
  "hold":  "false",
  "rooms": [
    {
      "email": "john@example.com"
    }
  ],
  "payments": [
    {
      "type": "customer_card"
    }
  ]
}

Есть идеи, почему всплывает #text и как его удалить?Что мне нужно изменить в моей схеме XSD?

Ответы [ 2 ]

0 голосов
/ 27 декабря 2018

Я добавил пользовательский конвейер biztalk и использовал пакет jget newton soft nuget.

0 голосов
/ 26 декабря 2018

У меня такой же результат в c # при использовании Newtonsoft.Узлы #text добавляются, когда у них есть другое пространство имен, чем у корневого пространства имен, потому что в JSON он становится объектом с текстом и пространством имен атрибута.

...