| package org.codehaus.jackson.map.ser; |
| |
| import java.io.IOException; |
| import java.util.*; |
| |
| import org.codehaus.jackson.*; |
| import org.codehaus.jackson.map.*; |
| import org.codehaus.jackson.map.annotate.JsonSerialize; |
| |
| public class TestJsonSerialize3 extends BaseMapTest |
| { |
| // [JACKSON-829] |
| static class FooToBarSerializer extends JsonSerializer<String> { |
| @Override |
| public void serialize(String value, JsonGenerator jgen, SerializerProvider provider) |
| throws IOException { |
| if ("foo".equals(value)) { |
| jgen.writeString("bar"); |
| } else { |
| jgen.writeString(value); |
| } |
| } |
| } |
| |
| static class MyObject { |
| @JsonSerialize(contentUsing = FooToBarSerializer.class) |
| List<String> list; |
| } |
| /* |
| /********************************************************** |
| /* Test methods |
| /********************************************************** |
| */ |
| |
| public void testCustomContentSerializer() throws Exception |
| { |
| ObjectMapper m = new ObjectMapper(); |
| MyObject object = new MyObject(); |
| object.list = Arrays.asList("foo"); |
| String json = m.writeValueAsString(object); |
| assertEquals("{\"list\":[\"bar\"]}", json); |
| } |
| } |