Documentos JSON.
JSON [ [ [
GET INTO | PUT
FROM ]
registro ]
FILE arquivo
]
LINE-FEED
STATUS
file status
Nome do arquivo a ser importado de JSON para COBOL ou exportado de COBOL para JSON.
GET INTO
Indica
que a operação a ser realizada é de importação
de um documento JSON para um registro
COBOL.
PUT FROM
Indica
que a operação a ser realizada é de exportação
de um registro
COBOL produzindo um documento JSON.
LINE-FEED
Indica que a documento
JSON deve ser produzido no formato texto. Neste caso, um terminador
de linha X“0D0A” será inserido ao final da linhas
e a hierarquia será edentada de modo que seja facilmente
visualizável por qualquer editor de textos.
registro
Identificador COBOL de nível
1 que recebe os dados resultantes da requisição GET
INTO ou fornece os dados para a produção do
documento JSON quando solicitado PUT
FROM.
Durante a compilação, o
registro é analisado produzindo uma associação
entre os níveis, nomes e atributos dos campos COBOL e a
hierarquia de delimitadores JSON.
Ao se codificar o registro
em COBOL visando a compatibilidade com os padrões JSON é
preciso observar:
- Maiúsculas e minúsculas nos
nomes COBOL não fazem diferença nas associações
COBOL-JSON, contudo, a linguagem de destino pode ser case sensitive,
nesse caso, basta declarar os campos utilizando maiúsculas e
minúsculas que esses nomes serão associados
independentemente da case para o COBOL, mas as strings de origem
serão preservadas na produção de documentos
JSON.
- Se o nome campo a ser tratado for uma palavra
reservada em COBOL, por exemplo “value”, isso pode ser
contornado com a inserção do prefixo “JSON-”,
desse modo o nome em COBOL ficaria “JASON-VALUE”, o COBOL
aceita o nome, porém o nome tratado será “VALUE”.
-
A clausula OCCURS só deve ser utilizada em grupos ou seja,
jamais no mesmo nível que a PICTURE, quanto maior o número
de ocorrências previstas nos arrays do registro COBOL mais
pesado será o processamento;
- Na exportação,
as ocorrências não utilizadas devem estar totalmente
preenchidas com espaços (no nível do grupo) para que
não sejam consideradas, da mesma forma, as marcações
JSON não encontradas no documento JSON durante a importação
resultam em ocorrências com o grupo totalmente preenchido com
espaços indicando que não há mais dados nas
ocorrências restantes no array;
- Os campos precisam
ser todos USAGE DISPLAY como é o padrão da linguagem
COBOL..
- Os campos preenchidos com LOW-VALUES
resultam na declaração null como valor dos campos em
JSON.
file status
Variável de 2
caracteres que retorna o código do resultado da operação
seguindo o padrão do file status do COBOL.
Documento JSON |
{"json":{ "curriculo":{ "InformacaoPessoal":{ "DataNascimento":"1980-12-01","Nomecompleto":"MONTEIRO LOBATO", "Contatos":{ "Endereco":{ "Rua":"R.COBOL","Numero":"123","Cidade":"RIO DE JANEIRO","CEP":99999999,"UF":"RJ" },"Telefone":"9999-9999","Email":"contato@COBOLware.com" },"Nacionalidade":"Brasileira","Sexo":"M" },"objetivo":"Atuar na area de TI","Experiencias":{ "Emprego":[ {"Num":1,"Cargo":"Suporte tecnico","Empregador":"IBM, RIO DE JANEIRO - RJ"}, {"Num":2,"Cargo":"Programador","Empregador":"Micro Focus, RECIFE - PE"}, {"Num":3,"Cargo":"Engenheiro","Empregador":"COBOLware, Americana - SP"} ] },"Formacao":"Superior Completo" } }} |
Codificação COBOL |
IDENTIFICATION DIVISION. PROGRAM-ID. JSON. AUTHOR. COBOLware Services Ltda. DATE-WRITTEN. 12/11/2010. SECURITY. ************************************************* * * * Exemplo de leitura de documento JSON * * * ************************************************* DATA DIVISION. WORKING-STORAGE SECTION. 77 FS-JSON PIC X(002) VALUE '00'. 01 DOCUMENTO-JSON. 02 curriculo. 03 InformacaoPessoal. 04 DataNascimento PIC X(010). 04 Nomecompleto PIC X(050). 04 Contatos. 05 Endereco. 06 Rua PIC X(050). 06 Numero PIC X(010). 06 Cidade PIC X(020). 06 CEP PIC 9(008). 06 UF PIC X(002). 05 Telefone PIC X(009). 05 Email PIC X(050). 04 Nacionalidade PIC X(020). 04 Sexo PIC X(001). 03 objetivo PIC X(050). 03 Experiencias. 04 Emprego OCCURS 10. 05 Num PIC 9(002). 05 Cargo PIC X(030). 05 Empregador PIC X(030). 03 Formacao PIC X(030). PROCEDURE DIVISION. 000-INICIO. EXEC COBOLware JSON GET INTO DOCUMENTO-JSON File 'teste.json' STATUS FS-JSON END-EXEC IF FS-JSON = '00' EXEC COBOLware Send Message 'Documento JSON carregado com sucesso' END-EXEC ELSE EXEC COBOLware Send Message 'Falha na carga do documento JSON' END-EXEC END-IF. 000-99-FIM. GOBACK. END PROGRAM JSON. |