Использование fast-xml-parser для преобразования JSON в XML для создания списка дочерних узлов

У меня есть следующий JSON:

      {
    "ExternalId": "1234-01",
    "Name": "product name",
    "Attributes": [
        {
            "Attribute": "attr-value-1"
        },
        {
            "Attribute": "attr-value-2"
        }
    ]
}

и я хочу создать следующий XML, в частности раздел атрибутов

      <product>
    <ExternalId>1234-01</ExternalId>
    <Name>product name</Name>
    <Attributes>
        <Attribute>attr-value-1</Attribute>
        <Attribute>attr-value-2</Attribute>
    </Attributes>
</product>

Я пробовал несколько разных вариантов конфигурации, но продолжал получать следующий формат узла атрибутов (https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/docs/v4/3.XMLBuilder.md)

      <product>
    <ExternalId>1234-01</ExternalId>
    <Name>product name</Name>
    <Attributes>
        <Attribute>attr-value-1</Attribute>
    </Attributes>
    <Attributes>
        <Attribute>attr-value-2</Attribute>
    </Attributes>
</product>

Есть ли какой-либо недокументированный вариант для принудительного вывода желаемого XML или JSON должен быть в другом формате?

1 ответ

С последней версией4.1.4, вы можете использовать свойствоoneListGroupсгруппировать все дочерние теги в один родительский тег

      const builder = new XMLBuilder({oneListGroup:true})
const output = builder.build(json)

Выход

      <ExternalId>1234-01</ExternalId>
<Name>product name</Name>
<Attributes>
  <Attribute>attr-value-1</Attribute>
  <Attribute>attr-value-2</Attribute>
</Attributes>
Другие вопросы по тегам