Skip to content

Repository files navigation

tiny-json Static Badge Endpoint Badge Endpoint Badge

Tiny JSON library for use in apps and games that are compiled with GraalVM Native Image. This library uses no reflection and is very small (20 kilobytes JAR file).

Passes all tests from https://json.org/JSON_checker test suite.

Import

Maven

<repositories>
    <repository>
        <id>moo</id>
        <url>https://repo.repsy.io/moo/maven</url>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>ee.moo</groupId>
        <artifactId>tiny-json</artifactId>
        <version>0.0.10</version>
    </dependency>
</dependencies>

Gradle

repositories {
    mavenCentral()
    maven {
        name = "moo"
        url = uri("https://repo.repsy.io/moo/maven")
    }
}

dependencies {
    implementation("ee.moo:tiny-json:0.0.10")
}

Usage

Read JSON

var data = """
{
    "message": "Hello World!",
    "targets": ["WORLD", "UNIVERSE"],
    "size": 42,
    "seen": true
}
""";

var json = Json.read(data).asObject();

System.out.println(json.get("message").asString());

for (var t : json.get("targets").asList()) {
    System.out.println(t.asString());
}

System.out.println(json.get("size").asInt());
System.out.println(json.get("seen").asBoolean());

Output

Hello World!
WORLD
UNIVERSE
42
true

Write JSON (Pretty)

var object = new JsonObject();

object.put("message", "Hello World!");
object.put("targets", List.of("WORLD", "UNIVERSE"));
object.put("size", 42);
object.put("seen", true);

System.out.println(Json.write(object));

Output

{
  "message": "Hello World!",
  "targets": [
    "WORLD",
    "UNIVERSE"
  ],
  "size": 42,
  "seen": true
}

Write JSON (Normal)

var object = new JsonObject();

object.put("message", "Hello World!");
object.put("targets", List.of("WORLD", "UNIVERSE"));
object.put("size", 42);
object.put("seen", true);

System.out.println(Json.write(object));

Output

{"message": "Hello World","targets": ["WORLD","UNIVERSE"],"size": 42,"seen": true}

About

Tiny JSON Library (GraalVM compatible)

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages