![JAR search and dependency download from the Maven repository](/logo.png)
yakworks.json.jackson.GroovyModule.groovy Maven / Gradle / Ivy
/*
* Copyright 2022 original authors
* SPDX-License-Identifier: Apache-2.0
*/
package yakworks.json.jackson
import groovy.transform.CompileStatic
import com.fasterxml.jackson.core.JsonGenerator
import com.fasterxml.jackson.databind.JsonSerializer
import com.fasterxml.jackson.databind.SerializerProvider
import com.fasterxml.jackson.databind.module.SimpleModule
/**
* Jackson "Module" (normal java Service that gets loaded with ServiceLoader)
* that will serialize GStrings properly with groovy
*/
@CompileStatic
class GroovyModule extends SimpleModule {
GroovyModule() {
addSerializer(GString, new GStringJsonSerializer())
}
static class GStringJsonSerializer extends JsonSerializer {
@Override
void serialize(GString value, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
if (value == null) {
jsonGenerator.writeNull()
} else {
jsonGenerator.writeString(value.toString())
}
}
@Override
Class handledType() {
return GString;
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy