- groovy.json.JsonSlurper
public class JsonSlurper
Tiene la misma interfaz que el JsonSlurper original escrito para la versión 1.8.0, pero su implementación ha cambiado por completo. Ahora es hasta 20 veces más rápido que antes, y su velocidad compite y, a menudo, supera sustancialmente a los populares analizadores JSON comunes alrededor de enero de 2014.
JSON slurper analiza el texto o el contenido del lector en una estructura de datos de listas y mapas.
Uso de ejemplo:
def slurper = new groovy.json.JsonSlurper() def result = slurper.parseText('{"person":{"name":"Guillaume","age":33,"pets":["dog","cat"]}}') assert result.person.name == "Guillaume" assert result.person.age == 33 assert result.person.pets.size() == 2 assert result.person.pets[0] == "dog" assert result.person.pets[1] == "cat"
JsonSlurper puede utilizar varios tipos de analizadores JSON. Lea la documentación de JsonParserType. Hay analizadores de modo relajado, analizadores de archivos grandes y analizadores de superposición de índices. No se preocupe, todo está genial. JsonSlurper simplemente funcionará, pero comprender los diferentes tipos de analizadores puede permitirle mejorar drásticamente el rendimiento de su análisis JSON.
Los analizadores de superposición de índices (INDEX_OVERLAY y LAX) son los analizadores JSON más rápidos. Sin embargo, no son los predeterminados por una buena razón. Los analizadores de superposición de índices tienen punteros (índices en realidad) al búfer de caracteres original. Se debe tener cuidado al colocar mapas analizados en una caché a largo plazo, ya que los miembros del mapa pueden indexar objetos superpuestos que apuntan al búfer original. Puede mitigar estos riesgos utilizando las propiedades de corte y corte perezoso. Chop corta con entusiasmo el búfer para que cada elemento de valor apunte a una pequeña copia del búfer original. Lazy Chop divide en cuadritos el búfer cuando se llama a una obtención de lista o una obtención de mapa, por lo que si se aplica una expresión GPath o similar. No necesita cortar o cortar perezosamente si NO está colocando el mapa en un caché a largo plazo. No necesita cortar o cortar perezosamente si está realizando una deserialización de objetos. La recomendación es utilizar INDEX_OVERLAY para búferes JSON de menos de 2 MB. MaxSizeForInMemory está configurado en 2 MB y cualquier archivo de más de 2 MB utilizará un analizador diseñado para archivos grandes, que es más lento que los analizadores INDEX_OVERLAY, LAX y CHAR_BUFFER, pero más rápido que los analizadores JSON más utilizados en la JVM para la mayoría de los casos de uso alrededor de enero 2014. Para habilitar el analizador INDEX_OVERLAY, haga esto:
parser = new JsonSlurper().setType(JsonParserType.INDEX_OVERLAY);
- Ver también:
- JsonParserType
- Ya que:
- 1.8.0
Resumen de métodos
Tipo de parámetros | Tipo de retorno | Nombre y descripcion |
---|---|---|
public int |
getMaxSizeForInMemory() Tamaño máximo antes de que Slurper comience a usar el analizador de búfer de ventanas. |
|
public JsonParserType |
getType() Tipo de analizador. |
|
public boolean |
isCheckDates() Determine si slurper analizará automáticamente las cadenas que reconoce como fechas. |
|
public boolean |
isChop() Activa el recorte de búfer para superposición de índices. |
|
public boolean |
isLazyChop() Activa el corte diferido del búfer para la superposición de índices. |
|
public Object |
parse(Reader reader) Analizar una estructura de datos JSON a partir del contenido de un lector |
|
public Object |
parse(InputStream inputStream) Analizar una estructura de datos JSON a partir del contenido de un inputStream |
|
public Object |
parse(InputStream inputStream, String charset) Analizar una estructura de datos JSON a partir del contenido de un inputStream |
|
public Object |
parse(byte[] bytes, String charset) Analizar una estructura de datos JSON a partir del contenido de una matriz de bytes. |
|
public Object |
parse(byte[] bytes) Analizar una estructura de datos JSON a partir del contenido de una matriz de bytes. |
|
public Object |
parse(char[] chars) Analice una estructura de datos JSON a partir del contenido de una matriz de caracteres. |
|
public Object |
parse(Path path) Analizar una estructura de datos JSON a partir del contenido de una ruta determinada. |
|
public Object |
parse(Path path, String charset) Analizar una estructura de datos JSON a partir del contenido de una ruta determinada. |
|
public Object |
parse(File file) Analizar una estructura de datos JSON a partir del contenido de un archivo determinado. |
|
public Object |
parse(File file, String charset) Analizar una estructura de datos JSON a partir del contenido de un archivo determinado. |
|
public Object |
parse(URL url) Analizar una estructura de datos JSON a partir del contenido de una URL determinada. |
|
public Object |
parse(URL url, Map params) Analizar una estructura de datos JSON a partir del contenido de una URL determinada. |
|
public Object |
parse(Map params, URL url) Analizar una estructura de datos JSON a partir del contenido de una URL determinada. |
|
public Object |
parse(URL url, String charset) Analizar una estructura de datos JSON a partir del contenido de una URL determinada. |
|
public Object |
parse(URL url, Map params, String charset) Analizar una estructura de datos JSON a partir del contenido de una URL determinada. |
|
public Object |
parse(Map params, URL url, String charset) Analizar una estructura de datos JSON a partir del contenido de una URL determinada. |
|
public Object |
parseText(String text) Analizar una representación de texto de una estructura de datos JSON |
|
public JsonSlurper |
setCheckDates(boolean checkDates) Determine si slurper analizará automáticamente las cadenas que reconoce como fechas. |
|
public JsonSlurper |
setChop(boolean chop) Activa el recorte de búfer para superposición de índices. |
|
public JsonSlurper |
setLazyChop(boolean lazyChop) Activa el corte diferido del búfer para la superposición de índices. |
|
public JsonSlurper |
setMaxSizeForInMemory(int maxSizeForInMemory) Tamaño máximo antes de que Slurper comience a usar el analizador de búfer de ventanas. |
|
public JsonSlurper |
setType(JsonParserType type) Tipo de analizador. |
Resumen de métodos heredados
Métodos heredados de la clase | Nombre |
---|---|
class Object |
wait, wait, wait, equals, toString, hashCode, getClass, notify, notifyAll |
Detalle del método
público int getMaxSizeForInMemory()
Tamaño máximo antes de que Slurper comience a usar el analizador de búfer de ventanas.
- Devoluciones:
- tamaño del archivo / búfer
- Ya que:
- 2.3
public JsonParserType getType()
Tipo de analizador.
- Ya que:
- 2.3
- Ver también:
- JsonParserType
- Devoluciones:
- escribe
booleano público isCheckDates()
Determine si slurper analizará automáticamente las cadenas que reconoce como fechas. Superposición de índice solamente.
- Devoluciones:
- Encendido o apagado
- Ya que:
- 2.3
booleano público isChop()
Activa el recorte de búfer para superposición de índices.
- Ya que:
- 2.3
- Ver también:
- JsonParserType
- Devoluciones:
- cortar o cortar
booleano público isLazyChop()
Activa el corte diferido del búfer para la superposición de índices.
- Ver también:
- JsonParserType
- Devoluciones:
- Encendido o apagado
- Ya que:
- 2.3
público Objeto analizar gramaticalmente(Lector lector)
Analizar una estructura de datos JSON a partir del contenido de un lector
- Parámetros:
-
reader
– lector sobre un contenido JSON
- Devoluciones:
- una estructura de datos de listas y mapas
público Objeto analizar gramaticalmente(Flujo de entrada flujo de entrada)
Analizar una estructura de datos JSON a partir del contenido de un inputStream
- Parámetros:
-
inputStream
– transmitir sobre un contenido JSON
- Devoluciones:
- una estructura de datos de listas y mapas
- Ya que:
- 2.3
público Objeto analizar gramaticalmente(Flujo de entrada flujo de entrada, Cuerda juego de caracteres)
Analizar una estructura de datos JSON a partir del contenido de un inputStream
- Parámetros:
-
inputStream
– transmitir sobre un contenido JSON -
charset
– juego de caracteres
- Devoluciones:
- una estructura de datos de listas y mapas
- Ya que:
- 2.3
público Objeto analizar gramaticalmente(byte[] bytes, Cuerda juego de caracteres)
Analizar una estructura de datos JSON a partir del contenido de una matriz de bytes.
- Parámetros:
-
bytes
– búfer de contenido JSON -
charset
– juego de caracteres
- Devoluciones:
- una estructura de datos de listas y mapas
- Ya que:
- 2.3
público Objeto analizar gramaticalmente(byte[] bytes)
Analizar una estructura de datos JSON a partir del contenido de una matriz de bytes.
- Parámetros:
-
bytes
– búfer de contenido JSON
- Devoluciones:
- una estructura de datos de listas y mapas
- Ya que:
- 2.3
público Objeto analizar gramaticalmente(carbonizarse[] caracteres)
Analice una estructura de datos JSON a partir del contenido de una matriz de caracteres.
- Parámetros:
-
chars
– búfer de contenido JSON
- Devoluciones:
- una estructura de datos de listas y mapas
- Ya que:
- 2.3
público Objeto analizar gramaticalmente(Sendero sendero)
Analizar una estructura de datos JSON a partir del contenido de una ruta determinada.
- Parámetros:
-
path
– Sendero que contiene contenido JSON
- Devoluciones:
- una estructura de datos de listas y mapas
público Objeto analizar gramaticalmente(Sendero sendero, Cuerda juego de caracteres)
Analizar una estructura de datos JSON a partir del contenido de una ruta determinada.
- Parámetros:
-
path
– Sendero que contiene contenido JSON -
charset
– el juego de caracteres para este archivo
- Devoluciones:
- una estructura de datos de listas y mapas
público Objeto analizar gramaticalmente(Expediente expediente)
Analizar una estructura de datos JSON a partir del contenido de un archivo determinado.
- Parámetros:
-
file
– Archivo que contiene contenido JSON
- Devoluciones:
- una estructura de datos de listas y mapas
- Ya que:
- 2.2.0
público Objeto analizar gramaticalmente(Expediente expediente, Cuerda juego de caracteres)
Analizar una estructura de datos JSON a partir del contenido de un archivo determinado.
- Parámetros:
-
file
– Archivo que contiene contenido JSON -
charset
– el juego de caracteres para este archivo
- Devoluciones:
- una estructura de datos de listas y mapas
- Ya que:
- 2.2.0
público Objeto analizar gramaticalmente(URL url)
Analizar una estructura de datos JSON a partir del contenido de una URL determinada.
- Parámetros:
-
url
– URL que contiene contenido JSON
- Devoluciones:
- una estructura de datos de listas y mapas
- Ya que:
- 2.2.0
público Objeto analizar gramaticalmente(URL url Mapa params)
Analizar una estructura de datos JSON a partir del contenido de una URL determinada.
- Parámetros:
-
url
– URL que contiene contenido JSON -
params
– parámetros de conexión
- Devoluciones:
- una estructura de datos de listas y mapas
- Ya que:
- 2.2.0
público Objeto analizar gramaticalmente(Mapa params, URL url)
Analizar una estructura de datos JSON a partir del contenido de una URL determinada. Variante de conveniencia al usar parámetros con nombre Groovy para los parámetros de conexión.
- Parámetros:
-
params
– parámetros de conexión -
url
– URL que contiene contenido JSON
- Devoluciones:
- una estructura de datos de listas y mapas
- Ya que:
- 2.2.0
público Objeto analizar gramaticalmente(URL url Cuerda juego de caracteres)
Analizar una estructura de datos JSON a partir del contenido de una URL determinada.
- Parámetros:
-
url
– URL que contiene contenido JSON -
charset
– el juego de caracteres para este archivo
- Devoluciones:
- una estructura de datos de listas y mapas
- Ya que:
- 2.2.0
público Objeto analizar gramaticalmente(URL url Mapa params, Cuerda juego de caracteres)
Analizar una estructura de datos JSON a partir del contenido de una URL determinada.
- Parámetros:
-
url
– URL que contiene contenido JSON -
params
– parámetros de conexión -
charset
– el juego de caracteres para este archivo
- Devoluciones:
- una estructura de datos de listas y mapas
- Ya que:
- 2.2.0
público Objeto analizar gramaticalmente(Mapa params, URL url Cuerda juego de caracteres)
Analizar una estructura de datos JSON a partir del contenido en un determinado URL. Variante de conveniencia al usar parámetros con nombre Groovy para los parámetros de conexión.
- Parámetros:
-
params
– parámetros de conexión -
url
– URL que contiene contenido JSON -
charset
– el juego de caracteres para este archivo
- Devoluciones:
- una estructura de datos de listas y mapas
- Ya que:
- 2.2.0
público Objeto parseText(Cuerda texto)
Analizar una representación de texto de una estructura de datos JSON
- Parámetros:
-
text
– Texto JSON para analizar
- Devoluciones:
- una estructura de datos de listas y mapas
public JsonSlurper setCheckDates(checkDates booleano)
Determine si slurper analizará automáticamente las cadenas que reconoce como fechas. Superposición de índice solamente.
- Devoluciones:
- Encendido o apagado
- Ya que:
- 2.3
public JsonSlurper setChop(chuleta booleana)
Activa el recorte de búfer para superposición de índices.
- Ya que:
- 2.3
- Ver también:
- JsonParserType
- Devoluciones:
- JsonSlurper
public JsonSlurper setLazyChop(booleano lazyChop)
Activa el corte diferido del búfer para la superposición de índices.
- Ver también:
- JsonParserType
- Devoluciones:
- JsonSlurper
- Ya que:
- 2.3
public JsonSlurper setMaxSizeForInMemory(int maxSizeForInMemory)
Tamaño máximo antes de que Slurper comience a usar el analizador de búfer de ventanas.
- Ya que:
- 2.3
- Devoluciones:
- JsonSlurper
public JsonSlurper setType(Tipo JsonParserType)
Tipo de analizador.
- Ya que:
- 2.3
- Ver también:
- JsonParserType
- Devoluciones:
- JsonSlurper