Skip to content

Latest commit

 

History

History
129 lines (95 loc) · 2.52 KB

File metadata and controls

129 lines (95 loc) · 2.52 KB

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}