Tengo un servidor que devuelve un mensaje JSON muy grande y mi aplicación cliente solo depende de una parte de esta respuesta. La aplicación cliente debe verificar si existe la propiedad "xyz" en el mensaje JSON y, según el resultado, ejecutar un caso de uso específico.
Para este requisito, convertir todo el mensaje JSON en objeto me parece un poco caro y, por lo tanto, esta pregunta.
¿Existe un lenguaje de consulta JSON estándar como el que tenemos para XML? En caso afirmativo, cuál es la mejor implementación de este lenguaje de consulta en Java.
FYI: Cambiar o agregar un nuevo servicio en el lado del servidor no es una opción.
JSON.getString(json_string, 'foo.22.bar')
(para, propiedad "bar" en el elemento 22 de la lista en la propiedad "foo", que contiene una Cadena)JSON baz = new JSON(json_string); baz.getString('foo.22.bar');
, por ejemploRespuestas:
¿Por qué no solo usar JavaScript? (JSON es la notación de objetos Javascript después de todo). Entonces no tendrá que analizar ni manipular el JSON.
EDITAR Echa un vistazo a http://json.org/java
No lo es La deserialización de un objeto es barata (pruébelo usted mismo). Hablar con la API externa será un orden de magnitud más costoso. Podría manipular directamente la cadena, que podría ser un poco más rápida, pero correría el riesgo de errores, reduciría la extensibilidad y la legibilidad. Un alto costo.
fuente
"Medir, no adivinar". Sí, la serialización y deserialización de objetos puede ser costosa en teoría, pero ¿cuáles son los objetivos de rendimiento de su aplicación? Si el objeto (des) serialización no lleva su rendimiento a niveles inaceptables, entonces no se preocupe por eso :-). La clave, por supuesto, es saber cuáles deberían ser los límites de rendimiento (por ejemplo, el tiempo de respuesta al usuario en 2 segundos) y medir cada parte del ciclo de solicitud / respuesta.
fuente