类com.fasterxml.jackson.databind.ser.std.StdSerializer源码实例Demo

下面列出了怎么用com.fasterxml.jackson.databind.ser.std.StdSerializer的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: steady   文件: ASTConstructBodySignature.java
/** {@inheritDoc} */
@Override
public String toJson(){
 final Map<Class<?>, StdSerializer<?>> custom_serializers = new HashMap<Class<?>, StdSerializer<?>>();
 custom_serializers.put(ASTConstructBodySignature.class, new ASTConstructBodySignatureSerializer());
 return JacksonUtil.asJsonString(this, custom_serializers);
 
 /*StringBuilder buffer = new StringBuilder();
   	buffer.append("{\"ast\":[ ");
   	if(fRoot.isRoot()){
   		buffer.append("{");
   		buildJsonElement(fRoot,buffer);
   		if(fRoot.isLeaf())
			buffer.append("}");
		else{
				buffer.append(",\"C\" : [" );
				JSON(fRoot,buffer);
				buffer.append("]}");
		}
   	}

   	buffer.append("]}"); //close off the ast array opened above
   	return buffer.toString();*/
   }
 
源代码2 项目: steady   文件: ASTSignatureChange.java
/** {@inheritDoc} */
@Override
public String toJSON() {
	final Map<Class<?>, StdSerializer<?>> custom_serializers = new HashMap<Class<?>, StdSerializer<?>>();
	custom_serializers.put(ASTSignatureChange.class, new ASTSignatureChangeSerializer());
	return JacksonUtil.asJsonString(this, custom_serializers);
}
 
源代码3 项目: steady   文件: JacksonUtil.java
/**
 * Serializes the given object to JSON, thereby using the given {@link StdSerializer}s and the given view {@link Class}.
 *
 * @param _object a {@link java.lang.Object} object.
 * @param _custom_serializers a {@link java.util.Map} object.
 * @param _view a {@link java.lang.Class} object.
 * @return a {@link java.lang.String} object.
 */
@SuppressWarnings({ "unchecked", "rawtypes" })
public static String asJsonString(final Object _object, final Map<Class<?>, StdSerializer<?>> _custom_serializers, final Class _view) {
       try {
           final ObjectMapper mapper = new ObjectMapper();
           
           // Register custom serializers
   		final SimpleModule module = new SimpleModule();
   		if(_custom_serializers!=null && !_custom_serializers.isEmpty()) {
   			for(Class clazz: _custom_serializers.keySet()) {
   				module.addSerializer(clazz, _custom_serializers.get(clazz));
   			}
   		}
   		mapper.registerModule(module);
           
   		String jsonContent = null;
   		if(_view==null) {
   			jsonContent = mapper.writeValueAsString(_object);
   		}
   		else {
   			jsonContent = mapper.writerWithView(_view).writeValueAsString(_object);
   		}
           return jsonContent;
       } catch (Exception e) {
           throw new RuntimeException(e);
       }
   }
 
public ObjectMapperResolver() {
    mapper = new GraviteeMapper();

    //because Permissions are represented as char[]
    mapper.enable(SerializationFeature.WRITE_CHAR_ARRAYS_AS_JSON_ARRAYS);

    // register filter provider
    registerFilterProvider();

    SimpleModule module = new SimpleModule();
    module.setDeserializerModifier(new BeanDeserializerModifier() {
        @Override
        public JsonDeserializer<Enum> modifyEnumDeserializer(DeserializationConfig config,
                                                             final JavaType type,
                                                             BeanDescription beanDesc,
                                                             final JsonDeserializer<?> deserializer) {
            return new JsonDeserializer<Enum>() {
                @Override
                public Enum deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException {
                    Class<? extends Enum> rawClass = (Class<Enum<?>>) type.getRawClass();
                    return Enum.valueOf(rawClass, jp.getValueAsString().toUpperCase());
                }
            };
        }
    });
    module.addSerializer(Enum.class, new StdSerializer<Enum>(Enum.class) {
        @Override
        public void serialize(Enum value, JsonGenerator jgen, SerializerProvider provider) throws IOException {
            jgen.writeString(value.name().toLowerCase());
        }
    });
    mapper.registerModule(module);
}
 
public ObjectMapperResolver() {
    mapper = new GraviteeMapper();

    //because Permissions are represented as char[]
    mapper.enable(SerializationFeature.WRITE_CHAR_ARRAYS_AS_JSON_ARRAYS);

    // register filter provider
    registerFilterProvider();

    SimpleModule module = new SimpleModule();
    module.setDeserializerModifier(new BeanDeserializerModifier() {
        @Override
        public JsonDeserializer<Enum> modifyEnumDeserializer(DeserializationConfig config,
                                                             final JavaType type,
                                                             BeanDescription beanDesc,
                                                             final JsonDeserializer<?> deserializer) {
            return new JsonDeserializer<Enum>() {
                @Override
                public Enum deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException {
                    Class<? extends Enum> rawClass = (Class<Enum<?>>) type.getRawClass();
                    return Enum.valueOf(rawClass, jp.getValueAsString().toUpperCase());
                }
            };
        }
    });
    module.addSerializer(Enum.class, new StdSerializer<Enum>(Enum.class) {
        @Override
        public void serialize(Enum value, JsonGenerator jgen, SerializerProvider provider) throws IOException {
            jgen.writeString(value.name().toLowerCase());
        }
    });
    mapper.registerModule(module);
    
    mapper.registerModule(new JavaTimeModule());
    mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
}
 
/**
 * Register Jackson module that maps enums as lowercase. Per http://stackoverflow.com/a/24173645.
 */
@SuppressWarnings("rawtypes")
private static void registerEnumModule(ObjectMapper mapper) {
    SimpleModule module = new SimpleModule();
    module.setDeserializerModifier(new BeanDeserializerModifier() {
        @Override
        public JsonDeserializer<Enum> modifyEnumDeserializer(DeserializationConfig config,
                                                             final JavaType type,
                                                             BeanDescription beanDesc,
                                                             final JsonDeserializer<?> deserializer) {
            return new JsonDeserializer<Enum>() {
                @Override
                public Enum deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException {
                    @SuppressWarnings("unchecked") Class<? extends Enum> rawClass = (Class<Enum<?>>) type.getRawClass();
                    return Enum.valueOf(rawClass, jp.getValueAsString().toUpperCase());
                }
            };
        }
    });
    module.addSerializer(Enum.class, new StdSerializer<Enum>(Enum.class) {
        @Override
        public void serialize(Enum value, JsonGenerator jgen, SerializerProvider provider) throws IOException {
            jgen.writeString(value.name().toLowerCase());
        }
    });
    mapper.registerModule(module);
}
 
源代码7 项目: Rosetta   文件: ConstantBinarySerializer.java
private static StdSerializer<byte[]> findDelegate() {
  try {
    // Jackson 2.6+
    return newInstance("com.fasterxml.jackson.databind.ser.std.ByteArraySerializer");
  } catch (Throwable t) {
    try {
      return newInstance("com.fasterxml.jackson.databind.ser.std.StdArraySerializers$ByteArraySerializer");
    } catch (Throwable t2) {
      throw new RuntimeException("Unable to find ByteArraySerializer to delegate to", t2);
    }
  }
}
 
源代码8 项目: Rosetta   文件: StoredAsJsonBinarySerializer.java
private static StdSerializer<byte[]> findDelegate() {
  try {
    // Jackson 2.6+
    return newInstance("com.fasterxml.jackson.databind.ser.std.ByteArraySerializer");
  } catch (Throwable t) {
    try {
      return newInstance("com.fasterxml.jackson.databind.ser.std.StdArraySerializers$ByteArraySerializer");
    } catch (Throwable t2) {
      throw new RuntimeException("Unable to find ByteArraySerializer to delegate to", t2);
    }
  }
}
 
源代码9 项目: Rosetta   文件: TestModule.java
public TestModule() {
  addSerializer(new StdSerializer<ServiceLoaderBean>(ServiceLoaderBean.class) {

    @Override
    public void serialize(ServiceLoaderBean value, JsonGenerator jgen, SerializerProvider provider) throws IOException {
      jgen.writeStartObject();
      jgen.writeNumberField("id_value", value.getId());
      jgen.writeStringField("name_value", value.getName());
      jgen.writeEndObject();
    }
  });
}
 
源代码10 项目: caravan   文件: FilterableBeanSerializerModifier.java
@Override
public List<BeanPropertyWriter> changeProperties(SerializationConfig config, BeanDescription beanDesc, List<BeanPropertyWriter> beanProperties) {
    FilterableType filterableType = _config.getFilterableType(beanDesc.getBeanClass());
    if (filterableType == null)
        return beanProperties;

    for (final BeanPropertyWriter beanPropertyWriter : beanProperties) {
        final FilterableProperty property = filterableType.getProperty(beanPropertyWriter.getName());
        if (property == null || property.getSerializationFilter() == null)
            continue;

        beanPropertyWriter.assignSerializer(new StdSerializer<Object>(Object.class) {

            private static final long serialVersionUID = 1L;

            @Override
            public void serialize(Object value, JsonGenerator gen, final SerializerProvider provider) throws IOException {
                JsonSerializer<Object> serializer = ConcurrentHashMapValues.getOrAdd(_customSerializers, beanPropertyWriter.getType(),
                        new Func<JsonSerializer<Object>>() {
                            @Override
                            public JsonSerializer<Object> execute() {
                                try {
                                    return BeanSerializerFactory.instance.createSerializer(provider, beanPropertyWriter.getType());
                                } catch (Throwable ex) {
                                    _logger.error("Error occurred when creating custom serializer for type: " + beanPropertyWriter.getType(), ex);
                                    return NullSerializer.instance;
                                }
                            }
                        });

                value = property.getSerializationFilter().filter(property, value);
                if (value == null) {
                    gen.writeNull();
                    return;
                }

                serializer.serialize(value, gen, provider);
            }
        });

        _logger.info("Will apply filter {} for property: {}.", property.getSerializationFilter(), property.name());
    }

    return beanProperties;
}
 
public ObjectMapperResolver() {
    mapper = new ObjectMapper();

    SimpleModule module = new SimpleModule();
    module.setDeserializerModifier(new BeanDeserializerModifier() {
        @Override
        public JsonDeserializer<Enum> modifyEnumDeserializer(DeserializationConfig config,
                                                             final JavaType type,
                                                             BeanDescription beanDesc,
                                                             final JsonDeserializer<?> deserializer) {
            return new JsonDeserializer<Enum>() {
                @Override
                public Enum deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException {
                    Class<? extends Enum> rawClass = (Class<Enum<?>>) type.getRawClass();
                    return Enum.valueOf(rawClass, jp.getValueAsString().toUpperCase());
                }
            };
        }
    });
    module.addSerializer(Enum.class, new StdSerializer<Enum>(Enum.class) {
        @Override
        public void serialize(Enum value, JsonGenerator jgen, SerializerProvider provider) throws IOException {
            jgen.writeString(value.name().toLowerCase());
        }
    });
    module.addSerializer(Instant.class, new StdSerializer<Instant>(Instant.class) {
        @Override
        public void serialize(Instant instant, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
            jsonGenerator.writeNumber(instant.toEpochMilli());
        }
    });
    module.addDeserializer(JWK.class, new StdDeserializer<JWK>(JWK.class) {
        @Override
        public JWK deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
            JsonNode node = jsonParser.getCodec().readTree(jsonParser);
            String kty = node.get("kty").asText();
            if (kty == null) {
                return null;
            }
            JWK jwk = null;
            switch (kty) {
                case "RSA":
                    jwk = jsonParser.getCodec().treeToValue(node, RSAKey.class);
                    break;
                case "EC":
                    jwk = jsonParser.getCodec().treeToValue(node, ECKey.class);
                    break;
                case "oct":
                    jwk = jsonParser.getCodec().treeToValue(node, OCTKey.class);
                    break;
                case "OKP":
                    jwk = jsonParser.getCodec().treeToValue(node, OKPKey.class);
                    break;
            }
            return jwk;
        }
    });
    mapper.addMixIn(Domain.class, MixIn.class);
    mapper.setVisibility(PropertyAccessor.ALL, Visibility.NONE);
    mapper.setVisibility(PropertyAccessor.FIELD, Visibility.ANY);
    mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
    mapper.registerModule(module);
    mapper.registerModule(new Jdk8Module());
    mapper.enable(MapperFeature.ACCEPT_CASE_INSENSITIVE_ENUMS);
}
 
源代码12 项目: Rosetta   文件: ContextualStoredAsJsonSerializer.java
protected void serializeAsBytes(T value, JsonGenerator generator, SerializerProvider provider, StdSerializer<byte[]> delegate) throws IOException {
  delegate.serialize(serializeToBytes(value, getMapper(generator), provider), generator, provider);
}
 
源代码13 项目: Rosetta   文件: ConstantBinarySerializer.java
private static StdSerializer<byte[]> newInstance(String className) throws Exception {
  return (StdSerializer<byte[]>) Class.forName(className).newInstance();
}
 
源代码14 项目: Rosetta   文件: StoredAsJsonBinarySerializer.java
private static StdSerializer<byte[]> newInstance(String className) throws Exception {
  return (StdSerializer<byte[]>) Class.forName(className).newInstance();
}
 
源代码15 项目: steady   文件: JacksonUtil.java
/**
 * Serializes the given object to JSON, thereby using the given {@link StdSerializer}s and no view {@link Class}.
 *
 * @param _object a {@link java.lang.Object} object.
 * @param _custom_serializers a {@link java.util.Map} object.
 * @return a {@link java.lang.String} object.
 */
public static String asJsonString(final Object _object, final Map<Class<?>, StdSerializer<?>> _custom_serializers) {
	return JacksonUtil.asJsonString(_object, _custom_serializers, null);
}
 
源代码16 项目: steady   文件: JacksonUtil.java
/**
 * Transforms the given {@link Object} into an instance of the given {@link Class}.
 * 
 * This is done by serialiazing the object into JSON with {@link #asJsonString(Object, Map, Class)},
 * followed by deserializing with {@link #asObject(String, Class).
 *  
 * @param _from
 * @param _to
 * @return
 */
public static Object fromTo(final Object _from, final Map<Class<?>, StdSerializer<?>> _custom_serializers, final Class _view, final Class<?> _to) {
	final String json = JacksonUtil.asJsonString(_from, _custom_serializers, _view);
	return JacksonUtil.asObject(json, _to);
}
 
 同包方法