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

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