CtrlK
BlogDocsLog inGet started
Tessl Logo

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

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

Pending
Overview
Eval results
Files

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);
}

Install with Tessl CLI

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