Skip to content

Commit dc85581

Browse files
authored
Fix #160 Add DaysSerializer (#161)
1 parent a4e49f1 commit dc85581

File tree

3 files changed

+60
-0
lines changed

3 files changed

+60
-0
lines changed

src/main/java/com/fasterxml/jackson/datatype/joda/JodaModule.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ public JodaModule()
4646
addSerializer(Interval.class, new IntervalSerializer());
4747
addSerializer(MonthDay.class, new MonthDaySerializer());
4848
addSerializer(YearMonth.class, new YearMonthSerializer());
49+
addSerializer(Days.class, new DaysSerializer());
4950

5051
// then key deserializers
5152
addKeyDeserializer(DateTime.class, new DateTimeKeyDeserializer());
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package com.fasterxml.jackson.datatype.joda.ser;
2+
3+
import java.io.IOException;
4+
5+
import org.joda.time.Days;
6+
7+
import com.fasterxml.jackson.core.JsonGenerator;
8+
import com.fasterxml.jackson.databind.SerializerProvider;
9+
10+
/**
11+
* Serializer for Joda {@link Days} class.
12+
*
13+
* @since 2.19
14+
*/
15+
public class DaysSerializer
16+
extends JodaSerializerBase<Days>
17+
{
18+
private static final long serialVersionUID = 1L;
19+
20+
public DaysSerializer() {
21+
super(Days.class);
22+
}
23+
24+
@Override
25+
public void serialize(Days value, JsonGenerator gen, SerializerProvider provider) throws IOException {
26+
gen.writeNumber(value.getDays());
27+
}
28+
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package com.fasterxml.jackson.datatype.joda.ser;
2+
3+
import java.util.HashMap;
4+
import java.util.Map;
5+
6+
import org.joda.time.Days;
7+
import org.junit.jupiter.api.Test;
8+
9+
import com.fasterxml.jackson.databind.ObjectMapper;
10+
import com.fasterxml.jackson.datatype.joda.JodaTestBase;
11+
12+
import static org.junit.jupiter.api.Assertions.assertEquals;
13+
14+
public class DaysSerializationTest extends JodaTestBase
15+
{
16+
final ObjectMapper MAPPER = mapperWithModuleBuilder().build();
17+
18+
@Test
19+
public void testPeriodSerialization()
20+
throws Exception
21+
{
22+
Days days = Days.days(7);
23+
Map<String, Object> map = new HashMap<>();
24+
map.put("days", days);
25+
26+
String json = MAPPER.writeValueAsString(map);
27+
28+
assertEquals("{\"days\":7}", json);
29+
}
30+
31+
}

0 commit comments

Comments
 (0)