Linguagem de consulta para JSON

11

Eu tenho um servidor que está retornando uma mensagem JSON muito grande e meu aplicativo cliente depende apenas de parte dessa resposta. O aplicativo cliente precisa verificar se a propriedade "xyz" existe na mensagem JSON e, dependendo do resultado, execute uma base de dados específica.

Para esse requisito, converter toda a mensagem JSON em objeto parece um pouco caro para mim e, portanto, esta pergunta.

Existe uma linguagem de consulta JSON padrão como a que temos para XML? Se sim, o que é melhor saber a implementação dessa linguagem de consulta em java.

FYI: Alterar ou adicionar novo serviço no lado do servidor não é uma opção.

Fazenda
fonte
Em javascript, se a resposta for enviada com o cabeçalho correto (application / json), a resposta JSON será um objeto javascript. É isso que você está pedindo? Não tenho certeza da sua pergunta.
Florian Margaine 15/02/2012
@ Florian Concordo, deixe-me atualizar minha pergunta e torná-lo específico para java.
Farm
Então, eu acho que você já tentou json.org/java ? :-)
Florian Margaine 15/02/2012
Eu estive pensando a mesma coisa. Toda biblioteca Java para JSON que eu vi parece terrivelmente volumosa; não há nada ao longo das linhas de JSON.getString(json_string, 'foo.22.bar')(para, propriedade "barra" no elemento 22 de lista a propriedade "foo", que contém uma cadeia de caracteres)
Izkata
Ou, para evitar a análise de cada vez JSON baz = new JSON(json_string); baz.getString('foo.22.bar');, por exemplo
Izkata 15/02/2012

Respostas:

6

Por que não usar apenas javascript? (JSON é uma Notação de Objeto Javascript, afinal). Você não precisará analisar ou manipular o JSON.

EDIT Dê uma olhada em http://json.org/java

Para esse requisito, converter toda a mensagem JSON em objeto parece um pouco caro para mim e, portanto, esta pergunta.

Não é. Desserializar um objeto é barato (teste você mesmo). Conversar com a API externa será uma ordem de magnitude mais cara. Você pode manipular diretamente a string, que pode ser um pouco mais rápida, mas você corre o risco de erros, reduz a extensibilidade e a legibilidade. Um alto custo.

Tom Squires
fonte
Atualizei minha pergunta e a tornei específica para Java.
Farm
Usando javascript não é uma opção já que a aplicação cliente está sendo executado no auto-rádio que só tem suporte LWUIT
Farm
2

"Meça, não adivinhe". Sim, a serialização e desserialização de objetos podem ser caras em teoria, mas quais são os objetivos de desempenho do seu aplicativo? Se a (des) serialização de objetos não elevar seu desempenho a níveis inaceitáveis, não se preocupe :-). A chave do curso é saber quais devem ser os limites de desempenho (por exemplo, tempo de resposta ao usuário em 2 segundos) e medir cada parte do ciclo de solicitação / resposta.

Martijn Verburg
fonte