Java 类com.fasterxml.jackson.databind.JsonSerializer 实例源码
项目:jigsaw-payment
文件:ProtobufConfiguration.java
@Bean
public Jackson2ObjectMapperBuilderCustomizer configProtobufSerializer() {
return new Jackson2ObjectMapperBuilderCustomizer() {
@Override
public void customize(
Jackson2ObjectMapperBuilder builder) {
builder.serializerByType(Message.class, new JsonSerializer<Message>(){
@Override
public void serialize(Message message, JsonGenerator generator,
SerializerProvider provider) throws IOException {
if(message == null)
return;
JsonJacksonFormat format = new JsonJacksonFormat();
format.print(message, generator);
}});
}
};
}
项目:aws-xray-sdk-java
文件:EntityImpl.java
@Override
public void setupModule(SetupContext setupContext) {
super.setupModule(setupContext);
setupContext.addBeanSerializerModifier(new BeanSerializerModifier() {
@SuppressWarnings("unchecked")
@Override
public JsonSerializer<?> modifySerializer(SerializationConfig serializationConfig, BeanDescription beanDescription, JsonSerializer<?> jsonSerializer) {
Class<?> beanClass = beanDescription.getBeanClass();
if (Cause.class.isAssignableFrom(beanClass)) {
return new CauseSerializer((JsonSerializer<Object>) jsonSerializer);
} else if (StackTraceElement.class.isAssignableFrom(beanClass)) {
return new StackTraceElementSerializer();
}
return jsonSerializer;
}
});
}
项目:gitplex-mit
文件:HibernateProxySerializer.java
protected JsonSerializer<Object> findSerializer(
SerializerProvider provider, Object value) throws IOException,
JsonProcessingException {
/*
* TODO: if Hibernate did use generics, or we wanted to allow use of
* Jackson annotations to indicate type, should take that into user.
*/
Class<?> type = value.getClass();
/*
* we will use a map to contain serializers found so far, keyed by type:
* this avoids potentially costly lookup from global caches and/or
* construction of new serializers
*/
/*
* 18-Oct-2013, tatu: Whether this is for the primary property or
* secondary is really anyone's guess at this point; proxies can exist
* at any level?
*/
PropertySerializerMap.SerializerAndMapResult result = _dynamicSerializers
.findAndAddPrimarySerializer(type, provider, null);
if (_dynamicSerializers != result.map) {
_dynamicSerializers = result.map;
}
return result.serializer;
}
项目:lemon-framework
文件:JsonMapper.java
public JsonMapper()
{
super();
// 允许单引号
//this.configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES, true);
// 字段和值都加引号
this.configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true);
// 数字也加引号
this.configure(JsonGenerator.Feature.WRITE_NUMBERS_AS_STRINGS, true);
this.configure(JsonGenerator.Feature.QUOTE_NON_NUMERIC_NUMBERS, true);
// 空值处理为空串
this.getSerializerProvider().setNullValueSerializer(new JsonSerializer<Object>()
{
@Override
public void serialize(Object value, JsonGenerator jg, SerializerProvider sp) throws IOException,
JsonProcessingException
{
jg.writeString("");
}
});
}
项目:dremio-oss
文件:JSONUtil.java
private static <T1, T2> SimpleModule newWrappingModule(final Class<T1> wrapped, final Class<T2> wrapper, final Converter<T1, T2> converter) {
SimpleModule module = new SimpleModule();
module.addDeserializer(wrapper, new JsonDeserializer<T2>() {
@Override
public T2 deserialize(JsonParser p, DeserializationContext ctxt) throws IOException, JsonProcessingException {
return converter.convert(ctxt.readValue(p, wrapped));
}
});
module.addSerializer(wrapper, new JsonSerializer<T2>() {
@Override
public void serialize(T2 value, JsonGenerator gen, SerializerProvider serializers) throws IOException, JsonProcessingException {
serializers.defaultSerializeValue(converter.revert(value), gen);
}
});
return module;
}
项目:leopard
文件:ContextualJsonSerializer.java
@Override
public JsonSerializer<?> createContextual(SerializerProvider serializerProvider, BeanProperty beanProperty) throws JsonMappingException {
if (beanProperty != null) {
// System.err.println("beanProperty:" + beanProperty + " name:" + beanProperty.getName() + " type:" + beanProperty.getMember().getGenericType());
Class<A> clazz = annotation();
A anno = beanProperty.getAnnotation(clazz);
if (anno == null) {
anno = beanProperty.getContextAnnotation(clazz);
}
if (anno != null) {
try {
return this.create(clazz, anno, beanProperty);
}
catch (Exception e) {
throw new RuntimeException(e.getMessage(), e);
}
}
return serializerProvider.findValueSerializer(beanProperty.getType(), beanProperty);
}
return serializerProvider.findNullValueSerializer(beanProperty);
}
项目:leopard
文件:FieldDetailJsonSerializer.java
@Override
public void serialize(Object value, JsonGenerator gen, SerializerProvider serializers) throws IOException, JsonProcessingException {
// gen.writeObject(value);
// String fieldName = gen.getOutputContext().getCurrentName();
// System.err.println("FieldDetailJsonSerializer serialize: className:" + className);
try {
Class<?> clazz;
String className = anno.className();
if (className.length() <= 0) {
clazz = anno.using();
}
else {
clazz = Class.forName(className);
}
@SuppressWarnings("unchecked")
JsonSerializer<Object> serializer = (JsonSerializer<Object>) clazz.newInstance();
serializer.serialize(value, gen, serializers);
}
catch (Exception e) {
throw new RuntimeException(e.getMessage(), e);
}
// System.err.println("JsonDetailJsonSerializer serialize value:" + value + " fieldName:" + fieldName + " type:" + beanProperty.getMember().getGenericType().getTypeName());
// Object detail = null;
// gen.writeObject(detail);
}
项目:java-triton
文件:PostprocessModificationModule.java
@Override
public void setupModule(final SetupContext context) {
super.setupModule(context);
context.addBeanSerializerModifier(new BeanSerializerModifier() {
public JsonSerializer<?> modifySerializer(
final SerializationConfig config,
final BeanDescription beanDesc,
final JsonSerializer<?> serializer) {
Class<?> valueClass = beanDesc.getType().getRawClass();
if (serializer instanceof BeanSerializerBase
&& MODIFIABLE_CLASSES.contains(valueClass)) {
return new FlatteningModifySerializer(
(BeanSerializerBase) serializer);
}
return serializer;
}
});
}
项目:https-github.com-g0t4-jenkins2-course-spring-boot
文件:JsonComponentModule.java
private void addJsonBean(Object bean) {
if (bean instanceof JsonSerializer) {
addSerializerWithDeducedType((JsonSerializer<?>) bean);
}
if (bean instanceof JsonDeserializer) {
addDeserializerWithDeducedType((JsonDeserializer<?>) bean);
}
for (Class<?> innerClass : bean.getClass().getDeclaredClasses()) {
if (JsonSerializer.class.isAssignableFrom(innerClass)
|| JsonDeserializer.class.isAssignableFrom(innerClass)) {
try {
addJsonBean(innerClass.newInstance());
}
catch (Exception ex) {
throw new IllegalStateException(ex);
}
}
}
}
项目:https-github.com-g0t4-jenkins2-course-spring-boot
文件:JacksonAutoConfigurationTests.java
@Bean
public Module jacksonModule() {
SimpleModule module = new SimpleModule();
module.addSerializer(Foo.class, new JsonSerializer<Foo>() {
@Override
public void serialize(Foo value, JsonGenerator jgen,
SerializerProvider provider)
throws IOException, JsonProcessingException {
jgen.writeStartObject();
jgen.writeStringField("foo", "bar");
jgen.writeEndObject();
}
});
return module;
}
项目:yql-plus
文件:JsonOperatorDump.java
public ProgramDumpModule() {
addSerializer(OperatorNode.class, new JsonSerializer<OperatorNode>() {
@Override
public void serialize(OperatorNode value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException {
Operator op = value.getOperator();
jgen.writeStartObject();
if (value.getLocation() != null) {
jgen.writeArrayFieldStart("location");
jgen.writeNumber(value.getLocation().getLineNumber());
jgen.writeNumber(value.getLocation().getCharacterOffset());
jgen.writeEndArray();
}
jgen.writeStringField("type", op.getClass().getName());
jgen.writeStringField("operator", op.toString());
if (!value.getAnnotations().isEmpty()) {
jgen.writeObjectField("annotations", value.getAnnotations());
}
jgen.writeFieldName("arguments");
provider.defaultSerializeValue(value.getArguments(), jgen);
jgen.writeEndObject();
}
});
}
项目:report
文件:JsonMapper.java
public JsonMapper(Inclusion inclusion, DateFormat df, boolean replaceNull)
{
mapper = new ObjectMapper();
// 设置输出时包含属性的风格
// mapper.setSerializationInclusion(inclusion);
// // 设置输入时忽略在JSON字符串中存在但Java对象实际没有的属性
// mapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
// // 禁止使用int代表Enum的order()來反序列化Enum
// mapper.configure(DeserializationConfig.Feature.FAIL_ON_NUMBERS_FOR_ENUMS, true);
// 允许单引号
mapper.configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES, true);
mapper.setDateFormat(df);
if (replaceNull) {
// null 转换为 ""
mapper.getSerializerProvider().setNullValueSerializer(new JsonSerializer<Object>()
{
@Override
public void serialize(Object value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException
{
jgen.writeString("");
}
});
}
}
项目:easycode
文件:GroupController.java
@ResponseBody
public String listAll() throws Exception {
List<Group> gs = groupService.list(null);
Group g = new Group();
g.setId(-1);
g.setName("--无--");
gs.add(0, g);
Jacksons j = mvnJacksons.addJsonSerializer(Group.class, new JsonSerializer<Group>(){
@Override
public void serialize(Group value, JsonGenerator gen,
SerializerProvider serializers) throws IOException {
gen.writeStartObject();
gen.writeObjectField("id", value.getId());
gen.writeObjectField("pId", value.getParentId());
gen.writeStringField("name", value.getName());
gen.writeEndObject();
}
});
return j.toJson(gs);
}
项目:easycode
文件:PermissionController.java
/**
* 根据项目ID获取权限
* @param projectId
* @return
* @throws Exception
*/
@ResponseBody
public String listByProject(Integer projectId) throws Exception {
List<Permission> os = permissionService.list(projectId, null, null);
Permission no = new Permission();
no.setId(-1L);
no.setName("--无--");
os.add(0, no);
Jacksons j = mvnJacksons.addJsonSerializer(Permission.class, new JsonSerializer<Permission>(){
@Override
public void serialize(Permission value, JsonGenerator gen,
SerializerProvider serializers) throws IOException {
gen.writeStartObject();
gen.writeObjectField("id", value.getId());
gen.writeObjectField("pId", value.getParentId());
gen.writeBooleanField("isParent", !(value.getIsMenu() == null || value.getIsMenu() == YesNo.NO));
gen.writeStringField("name", value.getName());
gen.writeEndObject();
}
});
return j.toJson(os);
}
项目:easycode
文件:PermissionController.java
@ResponseBody
public String cfgPermissionByRoleId(Integer roleId) throws Exception {
List<Permission> os = permissionService.listAllGroupByProject(roleId);
Jacksons j = mvnJacksons.addJsonSerializer(Permission.class, new JsonSerializer<Permission>(){
@Override
public void serialize(Permission value, JsonGenerator gen,
SerializerProvider serializers) throws IOException {
gen.writeStartObject();
gen.writeObjectField("id", value.getId());
if(value.getId() == null) {
gen.writeObjectField("projectId", value.getProject().getId());
}
gen.writeObjectField("children", value.getChildren());
gen.writeStringField("name", value.getName());
gen.writeBooleanField("isParent", !(value.getIsMenu() == null || value.getIsMenu() == YesNo.NO));
gen.writeObjectField("checked", value.getIsOwn() != null && value.getIsOwn() == YesNo.YES);
gen.writeEndObject();
}
});
return j.toJson(os);
}
项目:sosoapi-base
文件:ObjectMappingCustomer.java
public ObjectMappingCustomer() {
super();
//过滤值为null的属性
// this.configure(SerializationFeature.WRITE_NULL_MAP_VALUES, false);
//配置方法
/*<property name="objectMapper">
<bean class="com.moshi.base.json.ObjectMappingCustomer">
<property name="serializationInclusion">
<value type="com.fasterxml.jackson.annotation.JsonInclude.Include">NON_NULL</value>
</property>
</bean>
</property>*/
// 空值处理成字符串
this.getSerializerProvider().setNullValueSerializer(
new JsonSerializer<Object>() {
@Override
public void serialize(Object value, JsonGenerator jg,
SerializerProvider sp) throws IOException,
JsonProcessingException {
jg.writeString("");
}
});
}
项目:spring-boot-concourse
文件:JsonComponentModule.java
private void addJsonBean(Object bean) {
if (bean instanceof JsonSerializer) {
addSerializerWithDeducedType((JsonSerializer<?>) bean);
}
if (bean instanceof JsonDeserializer) {
addDeserializerWithDeducedType((JsonDeserializer<?>) bean);
}
for (Class<?> innerClass : bean.getClass().getDeclaredClasses()) {
if (JsonSerializer.class.isAssignableFrom(innerClass)
|| JsonDeserializer.class.isAssignableFrom(innerClass)) {
try {
addJsonBean(innerClass.newInstance());
}
catch (Exception ex) {
throw new IllegalStateException(ex);
}
}
}
}
项目:spring-boot-concourse
文件:JacksonAutoConfigurationTests.java
@Bean
public Module jacksonModule() {
SimpleModule module = new SimpleModule();
module.addSerializer(Foo.class, new JsonSerializer<Foo>() {
@Override
public void serialize(Foo value, JsonGenerator jgen,
SerializerProvider provider)
throws IOException, JsonProcessingException {
jgen.writeStartObject();
jgen.writeStringField("foo", "bar");
jgen.writeEndObject();
}
});
return module;
}
项目:fiware-ngsi-api
文件:ConvertersConfiguration.java
@Bean
public MappingJackson2HttpMessageConverter jsonV1Converter(ObjectMapper objectMapper) {
// Serialize numbers as strings
objectMapper.configure(JsonGenerator.Feature.WRITE_NUMBERS_AS_STRINGS, true);
// Serialize booleans as strings
SimpleModule booleanAsString = new SimpleModule("BooleanAsString");
booleanAsString.addSerializer(Boolean.class, new JsonSerializer<Boolean>() {
@Override public void serialize(Boolean value, JsonGenerator jgen, SerializerProvider provider)
throws IOException, JsonProcessingException {
jgen.writeString(value.toString());
}
});
objectMapper.registerModule(booleanAsString);
objectMapper.addMixIn(ContextElement.class, EntityIdMixIn.class);
objectMapper.addMixIn(AppendContextElementResponse.class, EntityIdMixIn.class);
return new MappingJackson2HttpMessageConverter(objectMapper);
}
项目:neo4j-websockets
文件:JsonObjectMapper.java
/**
* Constructor
* Adds the provided list of custom serializers to the object mapper returned by this class.
* @param jsonObjectSerializers list of custom serializers to be used by the object mapper
*/
@Autowired
public JsonObjectMapper(JsonObjectSerializers jsonObjectSerializers) {
SimpleModule entityModule = new SimpleModule("de.oliverwetterau.neo4j.websockets");
entityModule.addSerializer(Result.class, new ResultSerializer());
entityModule.addSerializer(de.oliverwetterau.neo4j.websockets.core.data.Error.class, new ErrorSerializer());
entityModule.addDeserializer(Result.class, new ResultDeserializer());
if (jsonObjectSerializers != null) {
for (Map.Entry<Class,JsonSerializer> jsonSerializer : jsonObjectSerializers.getSerializers().entrySet()) {
entityModule.addSerializer(jsonSerializer.getKey(), jsonSerializer.getValue());
}
for (Map.Entry<Class,JsonDeserializer> jsonDeserializer : jsonObjectSerializers.getDeserializers().entrySet()) {
entityModule.addDeserializer(jsonDeserializer.getKey(), jsonDeserializer.getValue());
}
}
textObjectMapper.registerModule(entityModule);
binaryObjectMapper.registerModule(entityModule);
}
项目:weplantaforest
文件:JsonSerializerConfig.java
@SuppressWarnings("rawtypes")
@Bean
public Module springDataPageModule() {
return new SimpleModule().addSerializer(Page.class, new JsonSerializer<Page>() {
@Override
public void serialize(Page value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
gen.writeStartObject();
gen.writeNumberField("totalElements", value.getTotalElements());
gen.writeNumberField("totalPages", value.getTotalPages());
gen.writeNumberField("numberOfElements", value.getNumberOfElements());
gen.writeObjectField("sort", value.getSort());
gen.writeBooleanField("last", value.isLast());
gen.writeBooleanField("first", value.isFirst());
gen.writeFieldName("content");
serializers.defaultSerializeValue(value.getContent(), gen);
gen.writeEndObject();
}
});
}
项目:opencucina
文件:JacksonMarshaller.java
/**
* JAVADOC Method Level Comments
*
* @throws Exception JAVADOC.
*/
@SuppressWarnings({"rawtypes", "unchecked"})
@Override
public void afterPropertiesSet()
throws Exception {
//Set up
SimpleModule module = new SimpleModule("user",
new Version(1, 0, 0, "User serializer/deserializer", null, null));
if (CollectionUtils.isNotEmpty(serialisers)) {
for (JsonSerializer<?> serialiser : serialisers) {
module.addSerializer(serialiser);
}
}
if (MapUtils.isNotEmpty(deserialisers)) {
for (Map.Entry<Class, JsonDeserializer> deserialiserEntry : deserialisers.entrySet()) {
module.addDeserializer(deserialiserEntry.getKey(), deserialiserEntry.getValue());
}
}
mapper.registerModule(module);
}
项目:contestparser
文件:JacksonAutoConfigurationTests.java
@Bean
public Module jacksonModule() {
SimpleModule module = new SimpleModule();
module.addSerializer(Foo.class, new JsonSerializer<Foo>() {
@Override
public void serialize(Foo value, JsonGenerator jgen,
SerializerProvider provider)
throws IOException, JsonProcessingException {
jgen.writeStartObject();
jgen.writeStringField("foo", "bar");
jgen.writeEndObject();
}
});
return module;
}
项目:NyBatisCore
文件:SerializerModifier.java
@Override
public JsonSerializer<?> modifySerializer( SerializationConfig config, BeanDescription beanDesc, JsonSerializer<?> serializer ) {
Class<?> klass = beanDesc.getBeanClass();
if( klass == Boolean.class ) {
return new BooleanSerializer( serializer );
} else if( klass == Integer.class ) {
return new IntegerSerializer( serializer );
} else if( klass == Long.class ) {
return new LongSerializer( serializer );
} else if( klass == Float.class ) {
return new FloatSerializer( serializer );
} else if( klass == Double.class ) {
return new DoubleSerializer( serializer );
} else if( klass == BigDecimal.class ) {
return new BigDecimalSerializer( serializer );
} else if( ClassUtil.isExtendedBy( klass, Date.class ) ) {
return new DateSerializer( serializer );
}
return serializer;
}
项目:eMonocot
文件:PersistentCollectionSerializer.java
/**
* We need to resolve actual serializer once we know the context; specifically
* must know type of property being serialized.
* If not known
*/
@Override
public JsonSerializer<?> createContextual(SerializerProvider provider,
BeanProperty property)
throws JsonMappingException
{
/* If we have property, should be able to get actual polymorphic type
* information.
* May need to refine in future, in case nested types are used, since
* 'property' refers to field/method and main type, but contents of
* that type may also be resolved... in which case this would fail.
*/
if (property != null) {
return new PersistentCollectionSerializer(property, property.getType(),
_forceLazyLoading);
}
return this;
}
项目:eMonocot
文件:HibernateSerializers.java
@Override
public JsonSerializer<?> findSerializer(
SerializationConfig config, JavaType type,
BeanDescription beanDesc)
{
Class<?> raw = type.getRawClass();
/* Note: PersistentCollection does not implement Collection, so we
* may get some types here...
*/
if (PersistentCollection.class.isAssignableFrom(raw)) {
// TODO: handle iterator types? Or PersistentArrayHolder?
}
if (HibernateProxy.class.isAssignableFrom(raw)) {
return new HibernateProxySerializer(isEnabled(Feature.FORCE_LAZY_LOADING));
}
return null;
}
项目:eMonocot
文件:HibernateProxySerializer.java
protected JsonSerializer<Object> findSerializer(SerializerProvider provider, Object value)
throws IOException, JsonProcessingException
{
/* TODO: if Hibernate did use generics, or we wanted to allow use of Jackson
* annotations to indicate type, should take that into account.
*/
Class<?> type = value.getClass();
/* we will use a map to contain serializers found so far, keyed by type:
* this avoids potentially costly lookup from global caches and/or construction
* of new serializers
*/
PropertySerializerMap.SerializerAndMapResult result = _dynamicSerializers.findAndAddSerializer(type,
provider, _property);
if (_dynamicSerializers != result.map) {
_dynamicSerializers = result.map;
}
return result.serializer;
}
项目:Gaffer
文件:JSONSerialiserTest.java
@Test
public void shouldUpdateInstanceWithCustomModule() throws Exception {
// Given
final JsonSerializer<String> serialiser = mock(JsonSerializer.class);
TestCustomJsonModules1.modules = Collections.singletonList(
new SimpleModule("module1", new Version(1, 0, 0, null, null, null))
.addSerializer(String.class, serialiser)
);
System.setProperty(JSONSerialiser.JSON_SERIALISER_MODULES, TestCustomJsonModules1.class.getName());
// When
JSONSerialiser.update();
// Then
assertEquals(JSONSerialiser.class, JSONSerialiser.getInstance().getClass());
JSONSerialiser.serialise("test");
verify(serialiser).serialize(Mockito.eq("test"), Mockito.any(), Mockito.any());
}
项目:presto
文件:AbstractTypedJacksonModule.java
@Override
public void serialize(T value, JsonGenerator generator, SerializerProvider provider)
throws IOException
{
if (value == null) {
provider.defaultSerializeNull(generator);
return;
}
try {
Class<?> type = value.getClass();
JsonSerializer<T> serializer = serializerCache.get(type, () -> createSerializer(provider, type));
serializer.serializeWithType(value, generator, provider, typeSerializer);
}
catch (ExecutionException e) {
propagateIfInstanceOf(e.getCause(), IOException.class);
throw Throwables.propagate(e.getCause());
}
}
项目:weplantaforest
文件:JsonSerializerConfig.java
@SuppressWarnings("rawtypes")
@Bean
public Module springDataPageModule() {
return new SimpleModule().addSerializer(Page.class, new JsonSerializer<Page>() {
@Override
public void serialize(Page value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
gen.writeStartObject();
gen.writeNumberField("totalElements", value.getTotalElements());
gen.writeNumberField("totalPages", value.getTotalPages());
gen.writeNumberField("numberOfElements", value.getNumberOfElements());
gen.writeObjectField("sort", value.getSort());
gen.writeBooleanField("last", value.isLast());
gen.writeBooleanField("first", value.isFirst());
gen.writeFieldName("content");
serializers.defaultSerializeValue(value.getContent(), gen);
gen.writeEndObject();
}
});
}
项目:logsniffer
文件:CoreAppConfig.java
@Bean
public ObjectMapper jsonObjectMapper() {
final ObjectMapper jsonMapper = new ObjectMapper();
jsonMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
jsonMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
jsonMapper.configure(Feature.ALLOW_UNQUOTED_FIELD_NAMES, true);
jsonMapper.configure(Feature.ALLOW_SINGLE_QUOTES, true);
jsonMapper.configure(MapperFeature.DEFAULT_VIEW_INCLUSION, false);
final SimpleModule module = new SimpleModule("FieldsMapping", Version.unknownVersion());
module.setSerializerModifier(new BeanSerializerModifier() {
@Override
public JsonSerializer<?> modifyMapSerializer(final SerializationConfig config, final MapType valueType,
final BeanDescription beanDesc, final JsonSerializer<?> serializer) {
if (FieldsMap.class.isAssignableFrom(valueType.getRawClass())) {
return new FieldsMapMixInLikeSerializer();
} else {
return super.modifyMapSerializer(config, valueType, beanDesc, serializer);
}
}
});
jsonMapper.registerModule(module);
return jsonMapper;
}
项目:weplantaforest
文件:JsonSerializerConfig.java
@SuppressWarnings("rawtypes")
@Bean
public Module springDataPageModule() {
return new SimpleModule().addSerializer(Page.class, new JsonSerializer<Page>() {
@Override
public void serialize(Page value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
gen.writeStartObject();
gen.writeNumberField("totalElements", value.getTotalElements());
gen.writeNumberField("totalPages", value.getTotalPages());
gen.writeNumberField("numberOfElements", value.getNumberOfElements());
gen.writeObjectField("sort", value.getSort());
gen.writeBooleanField("last", value.isLast());
gen.writeBooleanField("first", value.isFirst());
gen.writeFieldName("content");
serializers.defaultSerializeValue(value.getContent(), gen);
gen.writeEndObject();
}
});
}
项目:metadict
文件:MetadictJacksonModule.java
@Override
public void setupModule(SetupContext context) {
super.setupModule(context);
context.addBeanSerializerModifier(new BeanSerializerModifier() {
public JsonSerializer<?> modifySerializer(
SerializationConfig config,
BeanDescription beanDesc,
JsonSerializer<?> serializer) {
if (serializer instanceof BeanSerializerBase) {
return new DictionaryObjectSerializer(
(BeanSerializerBase) serializer);
}
return serializer;
}
});
}
项目:sakai
文件:AppConfig.java
@Bean
public Module customJacksonModuleToSerializeInstantAsIso8601() {
SimpleModule module = new SimpleModule();
module.addDeserializer(Instant.class, new JsonDeserializer<Instant>() {
@Override
public Instant deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException {
return Instant.from(DateTimeFormatter.ISO_INSTANT.parse(jsonParser.getText()));
}
});
module.addSerializer(Instant.class, new JsonSerializer<Instant>() {
@Override
public void serialize(Instant instant, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
jsonGenerator.writeString(DateTimeFormatter.ISO_INSTANT.format(instant));
}
});
return module;
}
项目:telldus-rest
文件:ObjectMapperProvider.java
@Autowired
public ObjectMapperProvider(final JacksonProperties properties,
final JsonSerializer<RichBoolean> richBooleanSerialzer) {
final ObjectMapper mapper = new ObjectMapper();
mapper.setSerializationInclusion(NON_EMPTY);
mapper.configure(FAIL_ON_UNKNOWN_PROPERTIES, false);
properties.getSerialization().entrySet().forEach(e ->
mapper.configure(e.getKey(), properties.getSerialization().get(e.getKey())));
properties.getDeserialization().entrySet().forEach(e ->
mapper.configure(e.getKey(), properties.getDeserialization().get(e.getKey())));
final SimpleModule customSerializersModule = new SimpleModule();
customSerializersModule.addSerializer(richBooleanSerialzer);
mapper.registerModules(
customSerializersModule,
new Jdk8Module(),
new JSR310Module()
);
this.mapper = mapper;
}
项目:vavr-jackson
文件:HListSerializer.java
void write(Object val, int containedTypeIndex, JsonGenerator gen, SerializerProvider provider) throws IOException {
if (val != null) {
if (type.containedTypeCount() > containedTypeIndex) {
JsonSerializer<Object> ser;
JavaType containedType = type.containedType(containedTypeIndex);
if (containedType != null && containedType.hasGenericTypes()) {
List<JavaType> types = containedType.getBindings().getTypeParameters();
JavaType[] generics = new JavaType[types.size()];
for (int i = 0; i < types.size(); i++) {
generics[i] = types.get(i);
}
JavaType adjusted = provider.getTypeFactory().constructSimpleType(val.getClass(), generics);
ser = provider.findTypedValueSerializer(adjusted, true, null);
} else {
ser = provider.findTypedValueSerializer(val.getClass(), true, null);
}
ser.serialize(val, gen, provider);
} else {
gen.writeObject(val);
}
} else {
gen.writeNull();
}
}
项目:vavr-jackson
文件:VavrSerializers.java
@Override
public JsonSerializer<?> findCollectionLikeSerializer(SerializationConfig config,
CollectionLikeType type, BeanDescription beanDesc,
TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer) {
Class<?> raw = type.getRawClass();
if (raw == CharSeq.class) {
return new CharSeqSerializer(type);
}
if (Seq.class.isAssignableFrom(raw)) {
return new ArraySerializer<>(type);
}
if (Set.class.isAssignableFrom(raw)) {
return new ArraySerializer<>(type);
}
if (PriorityQueue.class.isAssignableFrom(raw)) {
return new ArraySerializer<>(type);
}
return super.findCollectionLikeSerializer(config, type, beanDesc, elementTypeSerializer, elementValueSerializer);
}
项目:vavr-jackson
文件:ValueSerializer.java
@Override
public void serialize(T value, JsonGenerator gen, SerializerProvider provider) throws IOException {
Object obj = toJavaObj(value);
if (obj == null) {
provider.getDefaultNullValueSerializer().serialize(null, gen, provider);
} else {
JsonSerializer<Object> ser;
try {
JavaType emulated = emulatedJavaType(type, provider.getTypeFactory());
if (emulated.getRawClass() != Object.class) {
ser = provider.findTypedValueSerializer(emulated, true, null);
} else {
ser = provider.findTypedValueSerializer(obj.getClass(), true, null);
}
} catch (Exception ignore) {
ser = provider.findTypedValueSerializer(obj.getClass(), true, null);
}
ser.serialize(obj, gen, provider);
}
}
项目:json-view
文件:JsonViewSerializer.java
/**
* Registering custom serializer allows to the JSonView to deal with custom serializations for certains field types.<br>
* This way you could register for instance a JODA serialization as a DateTimeSerializer. <br>
* Thus, when JSonView find a field of that type (DateTime), it will delegate the serialization to the serializer specified.<br>
* Example:<br>
* <code>
* JsonViewSupportFactoryBean bean = new JsonViewSupportFactoryBean( mapper );
* bean.registerCustomSerializer( DateTime.class, new DateTimeSerializer() );
* </code>
*
* @param <T> Type class of the serializer
* @param cls {@link Class} The class type you want to add a custom serializer
* @param forType {@link JsonSerializer} The serializer you want to apply for that type
*/
@SuppressWarnings("unchecked")
public <T> void registerCustomSerializer(Class<T> cls, JsonSerializer<T> forType) {
if(customSerializersMap == null) {
customSerializersMap = new HashMap<>();
}
if(cls == null) {
throw new IllegalArgumentException("Class must not be null");
} else if(cls.equals(JsonView.class)) {
throw new IllegalArgumentException("Class cannot be " + JsonView.class);
} else if(customSerializersMap.containsKey(cls)) {
throw new IllegalArgumentException("Class " + cls + " already has a serializer registered (" + customSerializersMap.get(cls) + ")");
}
customSerializersMap.put(cls, (JsonSerializer<Object>) forType);
}
项目:find
文件:FindConfigFileService.java
protected FindConfigFileService(final FilterProvider filterProvider,
final TextEncryptor textEncryptor,
final JsonSerializer<FieldPath> fieldPathSerializer,
final JsonDeserializer<FieldPath> fieldPathDeserializer) {
final ObjectMapper objectMapper = new Jackson2ObjectMapperBuilder()
.featuresToEnable(SerializationFeature.INDENT_OUTPUT)
.mixIns(customMixins())
.serializersByType(ImmutableMap.of(FieldPath.class, fieldPathSerializer))
.deserializersByType(ImmutableMap.of(FieldPath.class, fieldPathDeserializer))
.createXmlMapper(false)
.build();
setConfigFileLocation(CONFIG_FILE_LOCATION);
setConfigFileName(CONFIG_FILE_NAME);
setDefaultConfigFile(getDefaultConfigFile());
setMapper(objectMapper);
setTextEncryptor(textEncryptor);
setFilterProvider(filterProvider);
}