BT

A sua opinião é importante! Por favor preencha a pesquisa do InfoQ!

JSONiq: A linguagem de consulta em JSON

| por Jonathan Allen Seguir 261 Seguidores , traduzido por Paulo Vitor Rendeiro Seguir 1 Seguidores em 05 mar 2013. Tempo estimado de leitura: 1 minuto |

Para melhorar a experiência das pessoas que acessam o InfoQ Brasil, nós criamos uma série de funcionalidades que te permitem ficar pode dentro das últimas tendências e das novidades de seu interesse, sem que você seja incomodado por coisas irrelevantes. Receba e-mails periódicos e notificações sobre seus tópicos favoritos!

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

Faça seu login para melhorar sua experiência com o InfoQ e ter acesso a funcionalidades exclusivas


Esqueci minha senha

Follow

Siga seus tópicos e editores favoritos

Acompanhe e seja notificados sobre as mais importantes novidades do mundo do desenvolvimento de software.

Like

Mais interação, mais personalização

Crie seu próprio feed de novidades escolhendo os tópicos e pessoas que você gostaria de acompanhar.

Notifications

Fique por dentro das novidades!

Configure as notificações e acompanhe as novidades relacionada a tópicos, conteúdos e pessoas de seu interesse

BT