![JAR search and dependency download from the Maven repository](/logo.png)
no.arktekk.siren.field.JSONFieldSerializer Maven / Gradle / Ivy
package no.arktekk.siren.field;
import io.vavr.control.Option;
import net.hamnaberg.json.Json;
import no.arktekk.siren.Fields;
import no.arktekk.siren.MIMEType;
public enum JSONFieldSerializer implements FieldSerializer {
INSTANCE;
@Override
public Option serialize(MIMEType mimeType, Option fields) {
return MIMEType.JSON.includedBy(mimeType) ? fields.map(this::jsonFields) : Option.none();
}
private String jsonFields(Fields fields) {
Json.JObject object = fields.toList().foldLeft(Json.jEmptyObject(), (json, field) -> json.put(field.name, field.value.getOrElse(Json.jNull())));
return object.nospaces();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy