• 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

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
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:
pathSendero 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:
pathSendero 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