@JsonSerialize 与 @JsonDeserialize 使用

1、使用

	@JsonDeserialize(using = AmountDeserializer.class)
    @JsonSerialize(using = AmountSerializer.class)
    private Long          amount;

2、自定义实现类

import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;

import java.io.IOException;

public class AmountSerializer extends JsonSerializer<Long> {

	//@RequestBody 接收参数时触发
	
	@Override
	public void serialize(Long value, JsonGenerator gen, SerializerProvider arg2) throws IOException
	{
		gen.writeNumber(value / 100L);
	}

}
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;

import java.io.IOException;

public class AmountDeserializer extends JsonDeserializer<Long> {

	//@ResponseBody 返回参数时触发
	
	@Override
	public Long deserialize(JsonParser json, DeserializationContext arg1)
			throws IOException {

		Number value = json.getNumberValue();
		return value.longValue() * 100L;
	}

}

你可能感兴趣的:(java)