
lambdify.aws.jsoniter.JsoniterAwsFunctionSerializer Maven / Gradle / Ivy
The newest version!
package lambdify.aws.jsoniter;
import java.io.*;
import com.jsoniter.JsonIterator;
import com.jsoniter.output.JsonStream;
import com.jsoniter.spi.JsoniterSpi;
import lambdify.aws.jsoniter.extra.*;
import lambdify.core.AwsFunctionSerializer;
import lombok.experimental.Accessors;
import lombok.val;
import static java.nio.charset.StandardCharsets.UTF_8;
/**
*
*/
@Accessors(fluent = true)
public class JsoniterAwsFunctionSerializer implements AwsFunctionSerializer {
public JsoniterAwsFunctionSerializer(){
ByteArraySupport.enable();
Java8DateTimeSupport.enable();
}
@Override
public byte[] serialize(Object object) {
val bytes = new ByteArrayOutputStream();
JsonStream.serialize( JsoniterConf.JACKSON_SUPPORT, object, bytes );
return bytes.toByteArray();
}
@Override
public T deserialize(byte[] input, Class clazz) {
try {
JsoniterSpi.setCurrentConfig(JsoniterConf.JACKSON_SUPPORT);
val content = new String( input, UTF_8 );
return JsonIterator.deserialize( content, clazz );
} finally {
JsoniterSpi.clearCurrentConfig();
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy