or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

index.mdjson-building.mdjson-output.mdjson-parsing.mdlow-level-processing.mdutilities.md
tile.json

tessl/maven-org-apache-groovy--groovy-json

JSON library for the Apache Groovy programming language providing JSON parsing, generation, and manipulation capabilities

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
mavenpkg:maven/org.apache.groovy/groovy-json@5.0.x

To install, run

npx @tessl/cli install tessl/maven-org-apache-groovy--groovy-json@5.0.0

index.mddocs/

Groovy JSON

The Groovy JSON library provides comprehensive JSON processing capabilities for the Apache Groovy programming language. It offers high-performance JSON parsing with multiple parser implementations, flexible JSON generation via builders with DSL support, customizable JSON serialization, and utilities for low-level JSON processing.

Package Information

  • Package Name: groovy-json
  • Package Type: maven
  • Language: Java/Groovy
  • Maven Coordinates: org.apache.groovy:groovy-json:5.0.0
  • Installation: Add dependency to your build.gradle or pom.xml

Gradle

implementation 'org.apache.groovy:groovy-json:5.0.0'

Maven

<dependency>
    <groupId>org.apache.groovy</groupId>
    <artifactId>groovy-json</artifactId>
    <version>5.0.0</version>
</dependency>

Core Imports

import groovy.json.*;

Specific imports:

import groovy.json.JsonSlurper;
import groovy.json.JsonSlurperClassic;
import groovy.json.JsonBuilder;
import groovy.json.StreamingJsonBuilder;
import groovy.json.JsonOutput;
import groovy.json.JsonGenerator;
import groovy.json.JsonLexer;
import groovy.json.JsonToken;
import groovy.json.JsonException;
import groovy.json.JsonParserType;

Basic Usage

import groovy.json.JsonSlurper;
import groovy.json.JsonBuilder;
import groovy.json.JsonOutput;
import java.nio.file.Path;
import java.nio.file.Paths;

// Parse JSON
JsonSlurper jsonSlurper = new JsonSlurper();
Object result = jsonSlurper.parseText('{"name":"John","age":30,"city":"New York"}');

// Parse from Path (Java NIO)
Path jsonPath = Paths.get("data.json");
Object pathResult = jsonSlurper.parse(jsonPath);

// Build JSON using DSL
JsonBuilder json = new JsonBuilder();
json.person {
    name "Alice"
    age 25
    location {
        city "San Francisco"
        state "CA"
    }
}
String jsonString = json.toString();

// Convert objects to JSON
Map<String, Object> data = new HashMap<>();
data.put("message", "Hello World");
data.put("timestamp", new Date());
String output = JsonOutput.toJson(data);

Architecture

The Groovy JSON library is built around several key architectural components:

  • Parsing Engine: Multiple parser implementations (INDEX_OVERLAY, CHARACTER_SOURCE, LAX, CHAR_BUFFER) optimized for different use cases and data sizes
  • Builder DSL: Groovy's dynamic method invocation and closure support enables intuitive JSON construction syntax
  • Streaming Architecture: Memory-efficient processing for large JSON documents through streaming builders and windowing parsers
  • Customization Layer: Extensible JsonGenerator system with converters, field exclusion, and formatting options
  • Type System: Full integration with Groovy's dynamic typing while maintaining Java interoperability

Capabilities

JSON Parsing

High-performance JSON parsing with multiple parser implementations optimized for different scenarios, from small payloads to large streaming documents.

public class JsonSlurper {
    public JsonSlurper();
    public Object parseText(String text);
    public Object parse(Reader reader);
    public Object parse(File file);
    public Object parse(URL url);
    public JsonSlurper setType(JsonParserType type);
}

public enum JsonParserType {
    INDEX_OVERLAY,    // Fastest parser with pointers to original buffer
    CHARACTER_SOURCE, // Parser for large files using windowing
    LAX,             // Relaxed parser allowing comments and unquoted keys
    CHAR_BUFFER      // Fast basic parser without index overlay
}

JSON Parsing

JSON Building

DSL-based JSON building with Groovy's closure syntax, supporting both in-memory and streaming approaches for flexible JSON construction.

public class JsonBuilder extends GroovyObjectSupport implements Writable {
    public JsonBuilder();
    public JsonBuilder(Object content);
    public Object call(Map m);
    public Object call(Closure c);
    public String toString();
    public String toPrettyString();
}

public class StreamingJsonBuilder extends GroovyObjectSupport {
    public StreamingJsonBuilder(Writer writer);
    public Object call(Map m) throws IOException;
    public Object call(Closure c) throws IOException;
}

JSON Building

JSON Output & Serialization

Comprehensive JSON serialization utilities with customizable generation, type conversion, and formatting options.

public class JsonOutput {
    public static String toJson(Object object);
    public static String toJson(Map m);
    public static String toJson(Date date);
    public static String prettyPrint(String jsonPayload);
    public static JsonUnescaped unescaped(CharSequence text);
}

public interface JsonGenerator {
    public String toJson(Object object);
    public boolean isExcludingFieldsNamed(String name);
    public boolean isExcludingValues(Object value);
}

JSON Output & Serialization

Low-level Processing

Token-based JSON processing for fine-grained control over parsing and custom JSON processing workflows.

public class JsonLexer implements Iterator<JsonToken> {
    public JsonLexer(Reader reader);
    public JsonToken nextToken();
    public boolean hasNext();
    public JsonToken next();
}

public class JsonToken {
    public Object getValue();
    public JsonTokenType getType();
    public long getStartLine();
    public long getStartColumn();
}

public enum JsonTokenType {
    OPEN_CURLY, CLOSE_CURLY, OPEN_BRACKET, CLOSE_BRACKET,
    COLON, COMMA, NULL, TRUE, FALSE, NUMBER, STRING
}

Low-level Processing

Utilities & Extensions

Utility classes for string escaping, performance optimization, and error handling in JSON processing workflows.

public class StringEscapeUtils {
    public static String escapeJava(String str);
    public static String unescapeJava(String str);
    public static String escapeJavaScript(String str);
    public static String unescapeJavaScript(String str);
}

public class JsonException extends RuntimeException {
    public JsonException();
    public JsonException(String message);
    public JsonException(String message, Throwable cause);
}

Utilities & Extensions

Common Types

// Core parsing interface
public interface JsonParser {
    Object parse(String jsonString);
    Object parse(Reader reader);
    Object parse(File file, String charset);
    Object parse(InputStream input);
    Object parse(byte[] bytes);
}

// JSON generation options builder
public static class JsonGenerator.Options {
    public Options excludeNulls();
    public Options disableUnicodeEscaping();
    public Options dateFormat(String format);
    public Options timezone(String timezone);
    public Options addConverter(Converter converter);
    public Options excludeFieldsByName(CharSequence... fieldNames);
    public Options excludeFieldsByType(Class<?>... types);
    public JsonGenerator build();
}

// Custom type conversion
interface JsonGenerator.Converter {
    boolean handles(Class<?> type);
    Object convert(Object value, String key);
}