A set of GSON serialiser/deserialisers for Vavr library
<dependency>
<groupId>io.vavr</groupId>
<artifactId>vavr-gson</artifactId>
<version>0.10.2</version>
</dependency>
compile("io.vavr:vavr-gson:0.10.2")
GsonBuilder builder = new GsonBuilder();
VavrGson.registerAll(builder);
gson = builder.create();
String json = gson.toJson(List.of(List.of(1)));
// = [[1]]
Object restored1 = gson.fromJson(json, List.class);
// = List([1])
Type type = new TypeToken<List<List<Integer>>>(){}.getType();
Object restored2 = gson.fromJson(json, type);
// = List(List(1))
Developer versions can be found here.
<dependency>
<groupId>io.vavr</groupId>
<artifactId>vavr-gson</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
Ensure that your ~/.m2/settings.xml
contains the following:
<profiles>
<profile>
<id>allow-snapshots</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<repositories>
<repository>
<id>snapshots-repo</id>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
</profile>
</profiles>
compile("io.vavr:vavr-gson:1.0.0-SNAPSHOT")
Ensure that your build.gradle
contains the following:
repositories {
mavenCentral()
maven {
url "https://oss.sonatype.org/content/repositories/snapshots"
}
}