Upgrade to Pro — share decks privately, control downloads, hide ads and more …

MuleSoft Referência Suporte JSON

MuleSoft Referência Suporte JSON

MuleSoft Referência Suporte JSON

Alex teles

August 24, 2016
Tweet

More Decks by Alex teles

Other Decks in Education

Transcript

  1.  JSON, abreviação de JavaScript Object Notation, é um formato

    de intercâmbio de dados leve. É, um formato legível baseado em texto para representar estruturas de dados simples e matrizes associativas (chamados objetos).
  2. { "Name": "John Doe", "Dob": "01/01/1970", "endereço de e-mail":[ {

    "Type": "casa", "Endereço": "[email protected]" }, { "Type": "trabalho", "Endereço": "[email protected]" } ] }
  3.  E nós temos uma pessoa de objeto que deseja

    criar a partir dos dados JSON. Nós usamos anotações para descrever como realizar o mapeamento. Usamos o @JsonAutoDetect dizer que os nomes dos membros campo mapear diretamente para nomes de campo JSON:
  4.  @JsonAutoDetect  Public class Person  {  private

    String nome;  dob private String;   Lista privada <EmailAddress> emailAddresses;   Cadeia getName pública () {name retorno; }   setName public void (String nome) {this.name = nome; }   Cadeia getDob pública () {return dob; }   setDob public void (dn String) {this.dob = dn; }   Lista pública <EmailAddress> getEmailAddresses () {emailAddresses de regresso; }   setEmailAddresses public void (List <EmailAddress> emailAddresses) {this.emailAddresses = emailAddresses; }  }  O objeto EmailAddress que é usado nos emailAddresses é apenas mais um JavaBean com a anotação @JsonAutoDetect.  Neste ponto Mule pode descobrir se deseja realizar uma JSON transforma com base nos parâmetros do método que está sendo chamado. Por exemplo:  PersonComponent classe pública {
  5.  Aqui nós iremos receber o conteúdo do arquivo people.json

    acima em um ponto final, mula veria que Person.class é um objeto JSON anotada e que tinha recebido os dados JSON da fila JMS e executar a conversão.  JSON Global Mapper  Jackson executa mapeamentos através da ObjectMapper. Este é um objeto que pode ser configurado com outra configuração sobre como serialização de dados e definir mixins que adicionar anotações para objetos que você não pode mudar diretamente. É possível definir um ObjectMapper global; um único mapeador usado para todos os JSON transforma em sua aplicação. Isso não é necessário, uma vez Mule cria automaticamente um mapeador de um transformador, mas usando um mapeador global pode ser útil se você precisar configurar propriedades específicas sobre o mapeador ou uso mixins. Para criar um ObjectMapper compartilhada Adicione o seguinte ao seu arquivo de configuração mula:
  6.  <Json: mapeador name = "myMapper">  <Json: mixin mixinClass

    = "org.mule.module.json.transformers.FruitCollect ionMixin"  targetClass = "org.mule.module.json.transformers.FruitCollect ion" />  <Json: mixin mixinClass = "org.mule.module.json.transformers.AppleMixin"  targetClass = "org.mule.tck.testmodels.fruit.Apple" />  </ Json: mapeador>
  7.  Interceptando JSON transformações  Até agora discutimos como mula

    realiza transformações JSON automáticas. Às vezes você pode querer interceptar a transformação. Para isso basta criar um transformador com um retorno de método ou tipo de parâmetro de sua classe JSON:
  8.  @Transformer (SourceTypes = {InputStream.class})  pública Pessoa TOPERSON (String

    json, ObjectMapper mapeador) lança JAXBException  {  return (Pessoa) mapper.readValue (em, Person.class);  }
  9.  A instância ObjectMapper quer é criado para você ou

    o contexto global para a sua aplicação é utilizada. Uma razão para isso seria a de retirar alguns elementos JSON e criar objetos a partir de um subconjunto do JSON recebido. Para mais informações sobre as transformações consulte a seção Usando Transformers.  JsonPath  Não há linguagem padrão atualmente para consultar gráficos de dados JSON, da mesma forma XPATH pode consultar documentos XML. Mule criou uma sintaxe de consulta simples para trabalhar com dados JSON em Java, chamados JsonPath.  Esta sintaxe de consulta fornece uma maneira simples de navegar uma estrutura de dados JSON. Os seguintes dados JSON demonstra como usar consultas Caminho JSON:
  10.  {  "Name": "John Doe",  "Dob": "01/01/1970", 

    "endereço de e-mail":[  {  "Type": "casa",  "Endereço": "[email protected]"  },  {  "Type": "trabalho",  "Endereço": "[email protected]"  }  ]  }
  11.  Para selecionar um uso entrada de criança:  1

     nome  Para acessar dados de matriz, use colchetes com um valor de índice ou seja,  1  emailAddresses [0] / tipo  Ou em que o elemento de rota é uma matriz:  1  [0] / arrayElement  Além disso, as matrizes multi-dimensionais podem ser acessados ​​usando:  1  filtros [1] / init [1] [0]  Isso é raro, mas se um nome de propriedade Json contém uma '/' o nome precisa besingle citou isto é,  1  resultados / 'http: //foo.com'/value  JsonPath em expressões  JSON Path pode ser usado em expressões de mula para consultar cargas úteis de mensagens JSON para filtrar ou enriquecimento.  Por exemplo, para usar JSON Caminho para realizar roteamento baseado em conteúdo:
  12.  <Choice>  <Quando a expressão = "emailAddresses [0] /

    type = 'home'" avaliador = "json">  <Acrescentar-string-transformador de mensagem = "Endereço de casa é # [JSON: emailAddresses [0] / endereço]" />  </ Quando>  <Quando a expressão = "emailAddresses [0] / type = 'trabalho'" avaliador = "json">  <Acrescentar-string-transformador de mensagem = "Endereço O trabalho é # [JSON: emailAddresses [0] / endereço]" />  </ Quando>  <Outro modo>  <Acrescentar-string-transformador de mensagem = "Nenhum endereço de e-mail encontrado" />  </ Em contrário>  </ Choice>
  13.  O nome do avaliador de expressão é 'json', a

    expressão é qualquer expressão válida Path JSON. Note-se que ao fazer expressões booleanas, como no exemplo acima, alguns operadores são suportados: