JSON to XML Transformer

Descubra mais sobre o componente JSON to XML Transformer e como usá-lo na Digibee Integration Platform.

componente JSON to XML Transformer gera um XML baseado em um JSON recebido na sua mensagem de entrada.

Parâmetros

Dê uma olhada nas opções de configuração do componente. Parâmetros suportados por expressões Double Braces estão marcados com (DB).

Parâmetro
Descrição
Valor padrão
Tipo de dado

JSON Field Path

JSON como caminho do campo string em notação com pontos (dotted notation).

payload

String

Root Element Name

Elemento raiz do XML gerado.

body

String

Root Element Attribute

Attribute for the root element of the generated XML.

N/A

String

Preserve Original

Se ativada, a opção preserva os campos originais.

True

Booleano

Header

XML header a ser incluído antes do XML payload.

<?xml version='1.0' encoding='UTF-8' standalone='no' ?>

String

Fluxo de mensagens

Entrada

O componente espera uma mensagem em qualquer formato, mas vai procurar procurar por um caminho dentro da propriedade de configuração JSON Field Path.

Alguns exemplos válidos de entrada:

Exemplo 1

{
    "orders": {
     "order": [
       {
         "a": 1,
 "b": 1
       },
       {
         "a": 2,
         "b": 2
       },
       {
         "a": 3,
         "b": 3
       }
   ]
   }
 }

Exemplo 2

{
 "payload": {
   "test": {
     "a": 1,
     "b": 1
   }
 }
}

Saída

A estrutura será igual a de entrada, porém com outra propriedade de JSON string e a sua representação de objeto JSON. Em caso de erro, a propriedade "error" será criada no mesmo nível da propriedade original.

A notação com pontos (dotted notation) de JSON vai procurar pelo elemento raiz que está sendo processado pelo pipeline e realizar um cruzamento de acordo com as especificações passadas na propriedade JSON Field Path.

Exemplo

Em uma representação do JSON Field Path contendo a.b.c.d, "a" será procurado no elemento raiz. Em seguida será o "b", depois o "c" e finalmente o "d". Se um array for encontrado durante o cruzamento, então o algoritmo vai gerar um caminho de cruzamento para cada elemento no array. O algoritmo substitui todas as ocorrências do caminho definido em JSON Field Path.

Sem erro

{
"XPTO": "TEMPLATE TRANSFORMADO"
"_body": {}
}
  • _body: se a opção Preserve Original estiver habilitada, a propriedade será exibida na saída contendo o JSON de entrada.

  • XPTO: nome dinâmico baseado na configuração do JSON Field Path nas propriedades do componente.

Com erro

{
 "body": null,
 "_error": "Can not construct instance of java.util.LinkedHashMap: no String-argument constructor/factory method to deserialize from String value ('')\n at [Source: N/A; line: -1, column: -1]",
 "_body": ""
}
  • _body: se a opção Preserve Original estiver habilitada, a propriedade será exibida na saída contendo o JSON de entrada.

  • _error: descrição do erro que ocorreu na execução.

  • XPTO: nome dinâmico baseado na configuração do JSON Field Path nas propriedades do componente.

JSON to XML Transformer em ação

Exemplo 1

  • JSON Field Path: orders

  • Root Element Name: doc

  • Preserve Original: habilitado

  • Header: <?xml version='1.0' encoding='UTF-8' standalone='no' ?>

Entrada

{
    "orders": {
     "order": [
       {
         "a": 1,
         "b": 1
       },
       {
         "a": 2,
         "b": 2
       },
       {
         "a": 3,
         "b": 3
       }
     ]
   }
}

Saída

{
 "orders": "<?xml version='1.0' encoding='UTF-8' standalone='no' ?><doc><order><a>1</a><b>1</b></order><order><a>2</a><b>2</b></order><order><a>3</a><b>3</b></order></doc>",
 "_orders": {
   "order": [
     {
       "a": 1,
       "b": 1
     },
     {
       "a": 2,
       "b": 2
     },
     {
       "a": 3,
       "b": 3
    }
   ]
 }
}

Exemplo 2

  • JSON Field Path: payload

  • Root Element Name: xpto

  • Preserve Original: desabilitado

Entrada

{
 "payload": {
   "test": {
     "a": 1,
     "b": 1
   }
 }
}

Saída

{ 
   "payload": "<xpto><test><a>1</a><b>1</b></test></xpto>"
}

Atualizado