All Downloads are FREE. Search and download functionalities are using the official Maven repository.

no.nav.common.kafka.producer.serializer.JsonValidationSerializer Maven / Gradle / Ivy

package no.nav.common.kafka.producer.serializer;

import no.nav.common.json.JsonUtils;
import org.apache.kafka.common.serialization.Serializer;
import org.everit.json.schema.Schema;
import org.json.JSONObject;

public class JsonValidationSerializer implements Serializer {

    private final Schema schema;

    public JsonValidationSerializer(Schema schema) {
        this.schema = schema;
    }

    @Override
    public byte[] serialize(String topic, T data) {
        if (data == null) {
            return null;
        }

        String jsonStr = JsonUtils.toJson(data);

        validateJson(jsonStr);

        return jsonStr.getBytes();
    }

    private void validateJson(String jsonStr) {
        JSONObject jsonObject = new JSONObject(jsonStr);
        schema.validate(jsonObject);
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy