WebSphere Message Broker, Versão 8.0.0.5 Sistemas operacionais: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Consulte as informações sobre a versão mais recente do produto em IBM Integration Bus, Versão 9.0

Criando uma Mensagem JSON

Você pode criar dados da mensagem JSON que contém objetos JSON, matrizes JSON, ou ambos, criando elementos na árvore de mensagens lógicas, sob o elemento Data que pertence à raiz do analisador JSON.

Uma mensagem JSON pode ter um objeto anônimo ou uma matriz anônima como raiz dos dados. Quando você cria uma matriz JSON na árvore de mensagens lógicas, o nome da matriz JSON é colocado em um elemento da árvore que tem um tipo configurado como o tipo de elemento do analisador JSON JSON.Array.

Os itens na matriz JSON são colocados na árvore lógica como elementos NameValue, como filhos do elemento JSON.Array, com o valor obrigatório. Os nomes desses elementos de item de matriz não são usados pelo serializador JSON porque os itens de matriz JSON são anônimos. Entretanto, para consistência com o nome que é usado pelo analisador JSON, use o nome Item quando definir os elementos de item de matriz.

Criando uma Mensagem de Objeto JSON

O exemplo a seguir mostra como criar uma mensagem JSON que é formatada com um objeto no nível raiz, com o formato { --- }.

Este exemplo mostra como criar uma mensagem de objeto JSON simples com um par nome-valor:
{"Message":"Hello World"}
O código ESQL a seguir pode ser usado para criar a mensagem:
SET OutputRoot.JSON.Data.Message = 'Hello World';
O código Java™ a seguir também pode ser usado para criar a mensagem:
MbElement outRoot = outMessage.getRootElement();
MbElement outJsonRoot = 
   outRoot.createElementAsLastChild(MbJSON.PARSER_NAME);
MbElement outJsonData = 
   outJsonRoot.createElementAsLastChild(MbElement.TYPE_NAME, MbJSON.DATA_ELEMENT_NAME, null);
MbElement outJsonTest = outJsonData.createElementAsLastChild(MbElement.TYPE_NAME_VALUE, "Message", "Hello World");
O código PHP a seguir também pode ser usado para criar a mensagem:
$output_message->{MB_JSON_PARSER_NAME}->{MB_JSON_DATA_ELEMENT_NAME}->Message = 'Hello World';
O exemplo a seguir mostra a árvore de mensagens do broker que é produzida a partir deste exemplo:
Message: ( ['json' : 0xc552990]
  (0x01000000:Object   ):Data    = (
    (0x03000000:NameValue):Message = 'Hello World' (CHARACTER)
 )

Criando uma Mensagem da Matriz JSON

O exemplo a seguir mostra como criar uma mensagem que é formatada com uma matriz no nível raiz, no formato [ --- ].

Este exemplo mostra como criar uma mensagem da matriz JSON:
["valueA","valueB"]
O código ESQL a seguir também pode ser usado para criar a matriz:
CREATE FIELD OutputRoot.JSON.Data IDENTITY (JSON.Array)Data;
CREATE LASTCHILD OF OutputRoot.JSON.Data TYPE NameValue NAME 'Item' VALUE 'valueA';
CREATE LASTCHILD OF OutputRoot.JSON.Data TYPE NameValue NAME 'Item' VALUE 'valueB';
O código Java a seguir também pode ser usado para criar a matriz:
MbElement outJsonRoot =
   outRoot.createElementAsLastChild("JSON");
MbElement outJsonData =
   outJsonRoot.createElementAsLastChild(MbJSON.ARRAY, "Data", null);
   outJsonData.createElementAsLastChild(MbElement.TYPE_NAME_VALUE,
                                        "Item", "valueA");
   outJsonData.createElementAsLastChild(MbElement.TYPE_NAME_VALUE,
                                        "Item", "valueB");
O código PHP a seguir também pode ser usado para criar a matriz:
$output_assembly->JSON->Data[] = array("valueA","valueB");

Para obter mais informações sobre matrizes PHP, consulte Usando Matrizes PHP com JSON.

A mensagem é criada na árvore de mensagens lógicas do broker no seguinte formato:
Message: ( ['json' : 0xc552990]
  (0x01001000:Array     ):Data    = (
    (0x03000000:NameValue):Item = 'valueA' (CHARACTER)
    (0x03000000:NameValue):Item = 'valueB' (CHARACTER)
 )

Criando uma Mensagem de Matriz de Objeto JSON

O exemplo a seguir mostra como criar uma mensagem que é formatada com uma matriz de objetos no nível raiz, no formato [{--},{--},...].

Este exemplo mostra como criar a mensagem de matriz de objeto JSON:
[{"Nam1":"val1","Num1":1},{"Nam2":"val2","Num2":2}]
O código ESQL a seguir também pode ser usado para criar a matriz:
CREATE FIELD OutputRoot.JSON.Data IDENTITY (JSON.Array)Data;
SET OutputRoot.JSON.Data.Item[1].Nam1 = 'val1';
SET OutputRoot.JSON.Data.Item[1].Num1 = 1;
SET OutputRoot.JSON.Data.Item[2].Nam2 = 'val2'
SET OutputRoot.JSON.Data.Item[2].Num2 = 2;
O código Java a seguir também pode ser usado para criar a matriz:
MbElement jsonData =    
   outMessage.getRootElement().createElementAsLastChild(MbJSON.PARSER_NAME).createElementAsLastChild
                                        (MbJSON.ARRAY,MbJSON.DATA_ELEMENT_NAME, null);
MbElement jsonFirstArrayItem = 
   jsonData.createElementAsLastChild(MbElement.TYPE_NAME, MbJSON.ARRAY_ITEM_NAME, null);
   jsonFirstArrayItem.createElementAsFirstChild(MbElement.TYPE_NAME_VALUE, "Nam1", "val1");
   jsonFirstArrayItem.createElementAsLastChild(MbElement.TYPE_NAME_VALUE, "Num1", new Integer(1));

MbElement jsonSecondArrayItem = 
   jsonData.createElementAsLastChild(MbElement.TYPE_NAME, MbJSON.ARRAY_ITEM_NAME, null);
   jsonSecondArrayItem.createElementAsFirstChild(MbElement.TYPE_NAME_VALUE, "Nam2", "val2");
   jsonSecondArrayItem.createElementAsLastChild(MbElement.TYPE_NAME_VALUE, "Num2", new Integer(2));
A mensagem é criada na árvore de mensagens lógicas do broker no seguinte formato:
Message: ( ['json' : 0xc673900]
  (0x01001000:Array     ): Data = (
    (0x01000000:Object):Item = (
      (0x03000000:NameValue):nam1 = 'val1' (CHARACTER)
      (0x03000000:NameValue):num1 = 1 (INTEGER)
    )(0x01000000:Object):Item = (
      (0x03000000:NameValue):nam2 = 'val2' (CHARACTER)
      (0x03000000:NameValue):num2 = 2 (INTEGER)
    )
  )
)
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        Última atualização:
        
        Última atualização: 2015-02-28 18:30:55


Tópico de ConceitoTópico de Conceito | Versão 8.0.0.5 | bc28411_