Trabalhar com o JSON Pointers

Tradução automática de Deepl

Em 4D v16 R4, enriquecemos os comandos de objectos para que possa validar objectos JSON. 4D v16 R5 vai ainda mais longe, introduzindo o apoio dos apontadores JSON. Óptimo – mas o que é um ponteiro JSON e o que posso fazer com ele?

Tal como não armazena os detalhes da empresa para cada funcionário num registo de base de dados (usando em vez disso um link para o registo da empresa), pode ser realmente útil estruturar um documento JSON com partes que podem ser reutilizadas em vários locais.

Por exemplo, vejamos um exemplo de uma encomenda de um website; o cliente introduz o endereço de envio e designa o endereço de facturação como sendo o mesmo. Em vez de duplicarmos a informação da morada, podemos definir a morada de envio como uma referência à morada de facturação.

Outro cenário é definir um objecto modelo contendo propriedades padrão armazenadas em formato JSON e funde algumas das propriedades com informação armazenada num ficheiro JSON separado.

Os objectos que contêm ciclos(ou seja, dois objectos que se contêm um ao outro) não podem ser codificados em formato JSON. As indicações JSON são uma forma de expressar a referência cíclica, mantendo ao mesmo tempo a compatibilidade com o formato JSON.

CONCEITO DO Apontador JSON

O JSON Pointer é uma norma que define uma sintaxe de cadeia que pode ser utilizada para aceder a um determinado campo ou valor chave no mesmo ou noutro documento JSON. É composto por cordas separadas pelo caracter “/”. Estas cadeias de caracteres especificam chaves em objectos ou índices em arrays. A sintaxe do ponteiro JSON é definida pelo RFC 6901.

Por exemplo, este objecto:

{
    "foo": {"$ref": "#/bar"},
    "bar": "42"
}

Pode ser resolvido como:

{
   "foo": "42",
   "bar": "42"
}

NOVO COMANDO

As variáveis JSON resolve pointers analisa todos os indicadores JSON encontrados no objecto passado como parâmetro em relação a algumas definições de opções (se existirem). O comando devolve então um objecto com o estado de sucesso, o valor do resultado e a lista potencial de erros.

POUCOS exemplos… é sempre útil!

Veja a nossa demonstração da base de dados de exemplos para aprender (e compreender) mais sobre como funcionam os indicadores JSON!

Exemplo de base de dados

Para além da demonstração, eis outro exemplo – tomemos uma variável $object que contém o seguinte:

Se eu executar o código abaixo:

$result:=JSON Resolve pointers($object)
TRACE

Aqui está o que recebo nas variáveis $object e $result:

blank

Note-se que $result é um objecto, contendo tanto o estado de sucesso como o valor retornado. Se tivesse havido erros, estes também teriam sido incluídos.

Vanessa Talbot
• Proprietário do produto - Vanessa Talbot entrou ao time 4D Program em Junho de 2014 como Proprietária do Produto e está a cargo de escrever as histórias dos usuários e depois traduzi-las em especificações funcionais. Seu papel também é garantir que a implementação da funcionalidade entregue cumpra com as necessidades do cliente. Desde sua chegada, trabalhou na definição de funcionalidades chaves em 4D. Trabalhou na maioria das novas funcionalidades multithread preemptivo e também em um tema muito complexo: a nova arquitetura para a aplicação engined. Vanessa é formada pela Telecom Saint-Etienne. Começou sua carreira no Instituto de Investigação Criminal como desenvolvedora do departamento audiovisual. Também trabalhou em meios de comunicação e no âmbito médico como especialista em assistência técnica, produção e documentação de novas funcionalidades.