Lingua delle query per JSON


11

Ho un server che sta restituendo un messaggio JSON molto grande e la mia applicazione client dipende solo da una parte di questa risposta. L'applicazione client deve verificare se nel messaggio JSON esiste la proprietà "xyz" e, in base al risultato, eseguire una specifica base utente.

Per questo requisito, convertire l'intero messaggio JSON in oggetto suona un po 'caro per me e quindi questa domanda.

Esiste un linguaggio di query JSON standard come quello che abbiamo per XML? In caso affermativo, quali sono meglio conoscere l'implementazione di questo linguaggio di query in Java.

Cordiali saluti: La modifica o l'aggiunta di un nuovo servizio sul lato server non è un'opzione.


In javascript, se la risposta viene inviata con l'intestazione corretta (application / json), la risposta JSON sarà un oggetto javascript. È quello che stai chiedendo? Non sono sicuro della tua domanda.
Florian Margaine,

@Florian Sono d'accordo, fammi aggiornare la mia domanda e renderla specifica per Java.
Fattoria il

Quindi, immagino che tu abbia provato json.org/java ? :-)
Florian Margaine,

Mi chiedevo la stessa cosa. Ogni libreria Java per JSON che ho visto sembra essere orribilmente ingombrante; non c'è nulla sulla falsariga di JSON.getString(json_string, 'foo.22.bar')(for, proprietà "bar" nell'elemento 22 dell'elenco nella proprietà "foo", che contiene una stringa)
Izkata,

Oppure, per evitare di analizzare ogni volta JSON baz = new JSON(json_string); baz.getString('foo.22.bar');, ad esempio
Izkata,

Risposte:


6

Perché non usare solo JavaScript? (Dopo tutto, JSON è Javascript Notazione oggetto). Quindi non dovrai analizzare o manipolare JSON.

EDIT Dai un'occhiata a http://json.org/java

Per questo requisito, convertire l'intero messaggio JSON in oggetto suona un po 'caro per me e quindi questa domanda.

Non lo è. La deserializzazione di un oggetto è economica (test da banco). Parlare con l'API esterna sarà un ordine di grandezza più costoso. Potresti manipolare direttamente la stringa che potrebbe essere leggermente più veloce ma rischieresti bug, riduci l'estensibilità e riduci la leggibilità. Un costo elevato.


Ho aggiornato la mia domanda e l'ho resa specifica per Java.
Fattoria il

L'uso di JavaScript non è un'opzione poiché l'applicazione client è in esecuzione su Headunit che ha solo il supporto LWUIT
Farm

2

"Misura, non indovinare". Sì, la serializzazione e la deserializzazione degli oggetti possono essere costose in teoria, ma quali sono gli obiettivi prestazionali della tua applicazione? Se la serializzazione dell'oggetto (de) non porta le tue prestazioni a livelli inaccettabili, non preoccuparti :-). La chiave ovviamente è sapere quali dovrebbero essere i limiti delle prestazioni (ad es. Tempo di risposta per l'utente in 2 secondi) e misurare ogni parte del ciclo richiesta / risposta.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.