IMPORTANTE: esta documentação foi descontinuada. Leia a documentação JSON to XML Transformer atualizada no nosso novo portal de documentação.
O JSON To XML Transformer gera um XML baseado em um JSON recebido na sua mensagem de entrada.
Dê uma olhada nos parâmetros de configuração do componente:
JSON Field Path: JSON como caminho do campo string em notação com pontos (dotted notation).
Root Element Name: elemento raiz do XML gerado.
Preserve Original: se ativada, a opção preserva os campos originais.
Header: XML header a ser incluído antes do XML payload.
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
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>"
}