Analytics and Automation Software : Cisco Data Virtualization

Conversão CI de JSON ao XML quando a estrutura da resposta JSON não for envolvida em um elemento superior

14 Outubro 2016 - Tradução por Computador
Outras Versões: Versão em PDFpdf | Inglês (22 Agosto 2015) | Feedback

Introdução

Este documento descreve as etapas exigidas para converter uma resposta da notação do objeto do Javascript (JSON) recebida pelo [in the Cisco Information Server (CIS)] representacional da origem de dados de transferência do estado (RESTO) no XML se a resposta JSON recebida por CI não é envolvida em um elemento superior.

Contribuído por Sadia Ali, engenheiro de TAC da Cisco.

Problema

Às vezes a resposta JSON não envolve como um único documento. Por exemplo, a resposta JSON podia ser:

{"status":"OK",
"data":{"trends":{"55-64":[
                         {"date":"201312","value":"13.15"}
                                       ]
                          },
             "query_cost":6,
             "trends_frequency":"monthly"
          }
}

Se aquela é a resposta, a seguir o XML à conversão JSON à revelia dá somente o XML como:

<?xml version="1.0" encoding="UTF-8"?><test>
<status>OK</status>

Somente o primeiro snippet é retornado dentro do estúdio. Contudo, no RestClient, a resposta completa é retornada e cs_server.log igualmente mostra a resposta completa.

A saída desejada XML é:

<?xml version="1.0" encoding="UTF-8"?>
<Wrapper>
<status>OK</status>
<data>
<trends>
<_55-64>
<date>201312</date>
<value>13.15</value>
</_55-64>
</trends>
<query_cost>6</query_cost>
<trends_frequency>monthly</trends_frequency>
</data>
</Wrapper>

Solução

As origens de dados do RESTO recuperam dados de um serviço de Web no formato JSON ou XML. Se os dados podem ser extraídos no formato tabular, você deve usar um transformador de XSL a fim fazer este. Estão aqui as instruções básicas:

  1. Estúdio da elevação pelo menos à correção de programa 6.2.3.00.22. Isto fornece-lhe a funcionalidade nova a fim projetar pelo exemplo, que facilita obter o esquema para que o procedimento elástico das transformações da língua do Stylesheet (XSLT) se use a fim traçar o JSON output à saída tabular.

  2. No estúdio, configurar seu tamanho do texto XML a um grande valor como 50,000. Isto é importante porque mais tarde, quando você clica o projeto pelo exemplo, quebra se o XML retornado excede este limite de tamanho. Se você é em uma situação onde você não possa aumentar este ajuste no estúdio, considere o uso de critérios diferentes da entrada a fim reduzir o tamanho do XML retornado.

  3. Você pode executar esta etapa quando você cria a origem de dados, ou após a origem de dados está criado. Quando você cria a origem de dados do RESTO, verifique a caixa de verificação do formato JSON.

  4. Se sua estrutura JSON não é envolvida em um elemento superior, os CI podem adicionar um envoltório de modo que o XML criado da resposta JSON seja formatado corretamente no XML legal. Se você não sabe se a resposta está envolvida, você pode adicionar o envoltório e avaliá-lo se você precisa este mais tarde. Isto é ajustado com o envoltório do campo desencapado da resposta JSON, que ajusta o nó de raiz para saída JSON > XML.



  5. Selecione uma das operações adicionadas na seção das operações:



  6. Clique o projeto pelo exemplo na seção dos parâmetros do encabeçamento/corpo. Se você apenas adicionou esta operação, você pôde ter que fechar o painel da origem de dados do RESTO e reabri-lo a fim fazer este active do botão.



  7. Escolha o elemento nível mais alto de sua resposta JSON e clique a APROVAÇÃO.



  8. Dê ao parâmetro um nome e clique a salvaguarda.



    Isto cria uma definição do esquema XML ajustada que apareça em seus recursos da origem de dados.



  9. Isto igualmente transforma o JSON output ao XML de modo que o transformador de XSL possa o processar. Abra a operação e examine a estrutura da saída. Mostra-lhe a estrutura que você se usa no procedimento de XSLT.



  10. Execute a operação. A saída JSON transforma no XML.



Document ID: 118611