Package groovy.json
Class JsonSlurper
java.lang.Object
groovy.json.JsonSlurper
public class JsonSlurper
extends java.lang.Object
This has the same interface as the original JsonSlurper written for version 1.8.0, but its
implementation has completely changed. It is now up to 20x faster than before, and its speed
competes and often substantially exceeds popular common JSON parsers circa Jan, 2014.
JSON slurper parses text or reader content into a data structure of lists and maps.
Example usage:
JsonSlurper can use several types of JSON parsers. Please read the documentation for
JsonParserType. There are relaxed mode parsers, large file parser, and index overlay parsers.
Don't worry, it is all groovy. JsonSlurper will just work, but understanding the different parser
types may allow you to drastically improve the performance of your JSON parsing.
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"
parser = new JsonSlurper().setType(JsonParserType.INDEX_OVERLAY);
- Since:
- 1.8.0
- See Also:
JsonParserType
-
Constructor Summary
Constructors Constructor Description JsonSlurper()
-
Method Summary
Modifier and Type Method Description int
getMaxSizeForInMemory()
Max size before Slurper starts to use windowing buffer parser.JsonParserType
getType()
Parser type.boolean
isCheckDates()
Determine if slurper will automatically parse strings it recognizes as dates.boolean
isChop()
Turns on buffer chopping for index overlay.boolean
isLazyChop()
Turns on buffer lazy chopping for index overlay.java.lang.Object
parse(byte[] bytes)
Parse a JSON data structure from content from a byte array.java.lang.Object
parse(byte[] bytes, java.lang.String charset)
Parse a JSON data structure from content from a byte array.java.lang.Object
parse(char[] chars)
Parse a JSON data structure from content from a char array.java.lang.Object
parse(java.io.File file)
Parse a JSON data structure from content within a given File.java.lang.Object
parse(java.io.File file, java.lang.String charset)
Parse a JSON data structure from content within a given File.java.lang.Object
parse(java.io.InputStream inputStream)
Parse a JSON data structure from content from an inputStreamjava.lang.Object
parse(java.io.InputStream inputStream, java.lang.String charset)
Parse a JSON data structure from content from an inputStreamjava.lang.Object
parse(java.io.Reader reader)
Parse a JSON data structure from content from a readerjava.lang.Object
parse(java.net.URL url)
Parse a JSON data structure from content at a given URL.java.lang.Object
parse(java.net.URL url, java.lang.String charset)
Parse a JSON data structure from content at a given URL.java.lang.Object
parse(java.net.URL url, java.util.Map params)
Parse a JSON data structure from content at a given URL.java.lang.Object
parse(java.net.URL url, java.util.Map params, java.lang.String charset)
Parse a JSON data structure from content at a given URL.java.lang.Object
parse(java.nio.file.Path path)
Parse a JSON data structure from content within a given Path.java.lang.Object
parse(java.nio.file.Path path, java.lang.String charset)
Parse a JSON data structure from content within a given Path.java.lang.Object
parse(java.util.Map params, java.net.URL url)
Parse a JSON data structure from content at a given URL.java.lang.Object
parse(java.util.Map params, java.net.URL url, java.lang.String charset)
Parse a JSON data structure from content at a given URL.java.lang.Object
parseText(java.lang.String text)
Parse a text representation of a JSON data structureJsonSlurper
setCheckDates(boolean checkDates)
Determine if slurper will automatically parse strings it recognizes as dates.JsonSlurper
setChop(boolean chop)
Turns on buffer chopping for index overlay.JsonSlurper
setLazyChop(boolean lazyChop)
Turns on buffer lazy chopping for index overlay.JsonSlurper
setMaxSizeForInMemory(int maxSizeForInMemory)
Max size before Slurper starts to use windowing buffer parser.JsonSlurper
setType(JsonParserType type)
Parser type.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Constructor Details
-
JsonSlurper
public JsonSlurper()
-
-
Method Details
-
getMaxSizeForInMemory
public int getMaxSizeForInMemory()Max size before Slurper starts to use windowing buffer parser.- Returns:
- size of file/buffer
- Since:
- 2.3
-
setMaxSizeForInMemory
Max size before Slurper starts to use windowing buffer parser.- Returns:
- JsonSlurper
- Since:
- 2.3
-
getType
Parser type.- Returns:
- type
- Since:
- 2.3
- See Also:
JsonParserType
-
setType
Parser type.- Returns:
- JsonSlurper
- Since:
- 2.3
- See Also:
JsonParserType
-
isChop
public boolean isChop()Turns on buffer chopping for index overlay.- Returns:
- chop on or off
- Since:
- 2.3
- See Also:
JsonParserType
-
setChop
Turns on buffer chopping for index overlay.- Returns:
- JsonSlurper
- Since:
- 2.3
- See Also:
JsonParserType
-
isLazyChop
public boolean isLazyChop()Turns on buffer lazy chopping for index overlay.- Returns:
- on or off
- Since:
- 2.3
- See Also:
JsonParserType
-
setLazyChop
Turns on buffer lazy chopping for index overlay.- Returns:
- JsonSlurper
- Since:
- 2.3
- See Also:
JsonParserType
-
isCheckDates
public boolean isCheckDates()Determine if slurper will automatically parse strings it recognizes as dates. Index overlay only.- Returns:
- on or off
- Since:
- 2.3
-
setCheckDates
Determine if slurper will automatically parse strings it recognizes as dates. Index overlay only.- Returns:
- on or off
- Since:
- 2.3
-
parseText
public java.lang.Object parseText(java.lang.String text)Parse a text representation of a JSON data structure- Parameters:
text
- JSON text to parse- Returns:
- a data structure of lists and maps
-
parse
public java.lang.Object parse(java.io.Reader reader)Parse a JSON data structure from content from a reader- Parameters:
reader
- reader over a JSON content- Returns:
- a data structure of lists and maps
-
parse
public java.lang.Object parse(java.io.InputStream inputStream)Parse a JSON data structure from content from an inputStream- Parameters:
inputStream
- stream over a JSON content- Returns:
- a data structure of lists and maps
- Since:
- 2.3
-
parse
public java.lang.Object parse(java.io.InputStream inputStream, java.lang.String charset)Parse a JSON data structure from content from an inputStream- Parameters:
inputStream
- stream over a JSON contentcharset
- charset- Returns:
- a data structure of lists and maps
- Since:
- 2.3
-
parse
public java.lang.Object parse(byte[] bytes, java.lang.String charset)Parse a JSON data structure from content from a byte array.- Parameters:
bytes
- buffer of JSON contentcharset
- charset- Returns:
- a data structure of lists and maps
- Since:
- 2.3
-
parse
public java.lang.Object parse(byte[] bytes)Parse a JSON data structure from content from a byte array.- Parameters:
bytes
- buffer of JSON content- Returns:
- a data structure of lists and maps
- Since:
- 2.3
-
parse
public java.lang.Object parse(char[] chars)Parse a JSON data structure from content from a char array.- Parameters:
chars
- buffer of JSON content- Returns:
- a data structure of lists and maps
- Since:
- 2.3
-
parse
public java.lang.Object parse(java.nio.file.Path path) throws java.io.IOExceptionParse a JSON data structure from content within a given Path.- Parameters:
path
-Path
containing JSON content- Returns:
- a data structure of lists and maps
- Throws:
java.io.IOException
-
parse
public java.lang.Object parse(java.nio.file.Path path, java.lang.String charset) throws java.io.IOExceptionParse a JSON data structure from content within a given Path.- Parameters:
path
-Path
containing JSON contentcharset
- the charset for this File- Returns:
- a data structure of lists and maps
- Throws:
java.io.IOException
-
parse
public java.lang.Object parse(java.io.File file)Parse a JSON data structure from content within a given File.- Parameters:
file
- File containing JSON content- Returns:
- a data structure of lists and maps
- Since:
- 2.2.0
-
parse
public java.lang.Object parse(java.io.File file, java.lang.String charset)Parse a JSON data structure from content within a given File.- Parameters:
file
- File containing JSON contentcharset
- the charset for this File- Returns:
- a data structure of lists and maps
- Since:
- 2.2.0
-
parse
public java.lang.Object parse(java.net.URL url)Parse a JSON data structure from content at a given URL.- Parameters:
url
- URL containing JSON content- Returns:
- a data structure of lists and maps
- Since:
- 2.2.0
-
parse
public java.lang.Object parse(java.net.URL url, java.util.Map params)Parse a JSON data structure from content at a given URL.- Parameters:
url
- URL containing JSON contentparams
- connection parameters- Returns:
- a data structure of lists and maps
- Since:
- 2.2.0
-
parse
public java.lang.Object parse(java.util.Map params, java.net.URL url)Parse a JSON data structure from content at a given URL. Convenience variant when using Groovy named parameters for the connection params.- Parameters:
params
- connection parametersurl
- URL containing JSON content- Returns:
- a data structure of lists and maps
- Since:
- 2.2.0
-
parse
public java.lang.Object parse(java.net.URL url, java.lang.String charset)Parse a JSON data structure from content at a given URL.- Parameters:
url
- URL containing JSON contentcharset
- the charset for this File- Returns:
- a data structure of lists and maps
- Since:
- 2.2.0
-
parse
public java.lang.Object parse(java.net.URL url, java.util.Map params, java.lang.String charset)Parse a JSON data structure from content at a given URL.- Parameters:
url
- URL containing JSON contentparams
- connection parameterscharset
- the charset for this File- Returns:
- a data structure of lists and maps
- Since:
- 2.2.0
-
parse
public java.lang.Object parse(java.util.Map params, java.net.URL url, java.lang.String charset)Parse a JSON data structure from content at a given URL. Convenience variant when using Groovy named parameters for the connection params.- Parameters:
params
- connection parametersurl
- URL containing JSON contentcharset
- the charset for this File- Returns:
- a data structure of lists and maps
- Since:
- 2.2.0
-