BT

JSONiq: A linguagem de consulta em JSON

por Jonathan Allen , traduzido por Paulo Vitor Rendeiro em 05 Mar 2013 |

A JSONiq é uma nova linguagem de consulta baseada em XQuery. De forma semelhante à SQL ou LINQ, a nova linguagem apresenta conceitos de suporte sintático como: let, for, where, group by e select. Vejamos um exemplo:

let $stats := db:find("stats")
for $access in $stats
where $access("response_time") > 5
group by $url := $access("url")
return
{
    "url": $url,
    "avg": avg($access("response_time")),
    "hits": count($access)
}

A linguagem JSONiq suporta mais que apenas transformações de JSON para JSON. Pode-se usá-la para gerar ou fazer parser de XML, e até criar consultas que combinem as duas operações. Neste exemplo da documentação, podemos ver a JSONiq sendo utilizada como linguagem de template para gerar tabelas HTML.

Semelhante à linguagem XQuery, a JSONiq suporta janelas sobrepostas e não-sobrepostas. Esta funcionalidade é usada para quebrar os dados em partes de tamanho iguais, ou para que sejam usados em cálculos estatísticos, como as três últimas médias. Pode-se aprender mais sobre janelas em cascata e deslizantes na especificação da XPath.

Outra característica da JSONiq é a sua capacidade de atualizar dados em formato JSON. Neste exemplo, pode-se observar a propriedade status sendo adicionada nos registros em que nome "Deadbeat Jim" incide.

A JSONiq está disponível como parte do processador Zorba XQuery, que é distribuído sob a licença Apache 2. Já a JSONiq baseia-se na licença Atribuição-CompartilhaIgual 3.0 Não Adaptada.

Avalie esse artigo

Relevância
Estilo/Redação

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão
Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

Dê sua opinião
Feedback geral
Bugs
Publicidade
Editorial
Marketing
InfoQ Brasil e todo o seu conteúdo: todos os direitos reservados. © 2006-2016 C4Media Inc.
Política de privacidade
BT

We notice you’re using an ad blocker

We understand why you use ad blockers. However to keep InfoQ free we need your support. InfoQ will not provide your data to third parties without individual opt-in consent. We only work with advertisers relevant to our readers. Please consider whitelisting us.