/ / Cómo extraer el último elemento en Json Array sin analizar todo el mensaje de Json - java, json

Cómo extraer el último elemento en Json Array sin analizar todo el mensaje de Json - java, json

Mi aplicación actual de Android está empleando RealmIO para almacenar datos Json.

Uso el siguiente inserto de reino

backgroundRealm.createOrUpdateAllFromJson(Data.class, rawJson);

Mis datos Json sin procesar se recuperan a través de una API REST

La API admite la paginación, sin embargo, necesito pasar las llamadas subsiguientes al último Id contenida en el servidor raw anterior.

Estas matrices de Json tienen 25000 elementos. No quiero el costo de analizar la matriz completa de 25000 elementos.

¿Hay algún método que pueda usar para extraer el último elemento de la matriz para descubrir cuál es el último valor de Id?

cada elemento se parece a esto

{"id":6,"risk":"xxxxxxxxx","active":0,"from":"2016-07-18"}

¿Que opciones tengo?

es solo rawJson.lastIndexOf ("id") y substring ()?

Respuestas

1 para la respuesta № 1

No hay una forma estándar de evitar analizar todo el JSON. Por otro lado, puede evitar almacenamiento todo en RAM, y extrayéndolo en nodos. Tome un analizador JSON de transmisión (estos existen) y observe los eventos del elemento que necesita. El último evento de este tipo que reciba contendrá la última identificación.

Por otro lado, si sabes que el esquema y El formato de serialización de los JSON no sonva a cambiar (por ejemplo, lo controla), puede escanear el texto de JSON sin analizar desde el final y extraer ese valor, contando los parens y comillas. Esto es, por supuesto, un frágil Enfoque, aunque muy rápido. Su fragilidad definitivamente depende del esquema: si la lista que está buscando es el último elemento de otra lista, es mucho más sólida que si fuera un valor bajo una clave en particular y puede terminar en cualquier parte del mapa.

Si tiene el control del lado de la API de REST de la aplicación, considere replantearla, por ejemplo. pasando los eventos del más reciente al más antiguo, para que pueda buscar primero eventos mientras analiza, y descarte el resto de forma segura si no necesita el pasado.