Histórico da Página
01. DADOS GERAIS
Linha de Produto: | Logix |
---|---|
Segmento: | Tecnologia |
Módulo: | Framework |
Função: | Componente LJsonObject |
Ticket: | 8370362 |
Requisito/Story/Issue (informe o requisito relacionado) : | DFWKTOOLS-1943 |
02. SITUAÇÃO/REQUISITO
Na tentativa de ler propriedades LENGTH, TYPE e VALUE de elementos de um JSON Array utilizando o componente LJsonObject, estão sendo retornados valores incorretos.
A situação ocorria apenas com JSON Array iniciado com o símbolo "[" (colchete) sem definição do TAG com o nome da lista/array, conforme exemplo abaixo:
Bloco de código |
---|
[ { "tipo":1, "codigo":"11PB220521", "operacao":"ProcessarProduto", "descricao":"Operação ''ProcessarProduto'' executada com sucesso para a chave: 11PB220521." } ] |
03. SOLUÇÃO
Correção da leitura e interpretação dos elementos de um JSON Array no componente LJsonObject, quando o formato do Json tiver as características mencionadas anteriormente no tópico 02. Situação/Requisito
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#---------------------------# FUNCTION LJSonObject_test() #---------------------------# DEFINE l_json_reference VARCHAR(10) DEFINE l_content VARCHAR(500) DEFINE l_status SMALLINT DEFINE l_value VARCHAR(100) LET l_content = '[ {"tipo":1,"codigo":"11PB220521","operacao":"ProcessarProduto","descricao":"Operação ''ProcessarProduto'' executada com sucesso para a chave: 11PB220521."} ]' LET l_status = _ADVPL_get_property(l_json_reference,"ACTIVATE",l_content CLIPPED) CALL conout("STATUS CONTENT1 = " ||l_status) IF NOT l_status THEN CALL conout("Não foi possível ativar o JSON informado, verifique se o conteúdo e formato são válidos.") ELSE LET l_value =_ADVPL_get_property(l_json_reference,"VALUE","[1]/tipo") CALL conout("Valor do elemento TIPO da ocorrencia 1 da lista = ["||l_value||"]") #Como a lista não possui TAG com a nomenclatura, não é passado parâmetro após o parâmetro da propriedade LENGTH. #Quando a lista tiver nomenclatura, deve-se passar o nome da lista após o parâmetro da propriedade LENGTH. Exemplo: _ADVPL_get_property(l_json_reference,"LENGTH",<nome_lista>) LET l_value = _ADVPL_get_property(l_json_reference,"LENGTH") CALL conout("Tamanho da lista principal = ["||l_value||"]") LET l_value =_ADVPL_get_property(l_json_reference,"TYPE","[1]/descricao") CALL conout("Tipo do elemento TIPO da ocorrencia 1 da lista = ["||l_value||"]") END IF END FUNCTION |
Card documentos Informacao Disponível a partir do pacote oficial 12.1.29 ou Framework Fix 12.1.27.(fix03) Titulo IMPORTANTE!
05. ASSUNTOS RELACIONADOS
- Componente LGX - LJSONOBJECT
Templatedocumentos |
---|
HTML |
---|
<style> div.theme-default .ia-splitter #main { margin-left: 0px; } .ia-fixed-sidebar, .ia-splitter-left { display: none; } #main { padding-left: 10px; padding-right: 10px; overflow-x: hidden; } .aui-header-primary .aui-nav, .aui-page-panel { margin-left: 0px !important; } .aui-header-primary .aui-nav { margin-left: 0px !important; } .aui-tabs.horizontal-tabs>.tabs-menu>.menu-item.active-tab a::after { background: #FF9900; !important } .menu-item.active-tab { border-bottom: none !important; } </style> |
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas