Skip to content

tarmolehtpuu/tiny-json

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

License

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages