Skip to content

Commit 6043941

Browse files
committed
Merge pull request #62 from ZioberMichal/master
On StackOverflow I have answered for question: How to deserialize from
2 parents 22d88cb + c834493 commit 6043941

File tree

2 files changed

+16
-7
lines changed

2 files changed

+16
-7
lines changed

src/main/java/com/fasterxml/jackson/datatype/joda/deser/LocalDateDeserializer.java

+7-7
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,14 @@ public class LocalDateDeserializer
2222
@Override
2323
public LocalDate deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException
2424
{
25-
// [yyyy,mm,dd]
25+
// [yyyy,mm,dd] or ["yyyy","mm","dd"]
2626
if (jp.isExpectedStartArrayToken()) {
27-
jp.nextToken(); // VALUE_NUMBER_INT
28-
int year = jp.getIntValue();
29-
jp.nextToken(); // VALUE_NUMBER_INT
30-
int month = jp.getIntValue();
31-
jp.nextToken(); // VALUE_NUMBER_INT
32-
int day = jp.getIntValue();
27+
jp.nextToken(); // VALUE_NUMBER_INT or VALUE_STRING
28+
int year = new Integer(jp.getText());
29+
jp.nextToken(); // VALUE_NUMBER_INT or VALUE_STRING
30+
int month = new Integer(jp.getText());
31+
jp.nextToken(); // VALUE_NUMBER_INT or VALUE_STRING
32+
int day = new Integer(jp.getText());
3333
if (jp.nextToken() != JsonToken.END_ARRAY) {
3434
throw ctxt.wrongTokenException(jp, JsonToken.END_ARRAY, "after LocalDate ints");
3535
}

src/test/java/com/fasterxml/jackson/datatype/joda/deser/MiscDeserializationTest.java

+9
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,15 @@ public void testLocalDateDeserWithTypeInfo() throws IOException
183183
assertEquals(7, date2.getMonthOfYear());
184184
assertEquals(13, date2.getDayOfMonth());
185185
}
186+
187+
public void testLocalDateDeserWithPartsAsString() throws IOException
188+
{
189+
// couple of acceptable formats, so:
190+
LocalDate date = MAPPER.readValue("[\"2001\",\"5\",\"25\"]", LocalDate.class);
191+
assertEquals(2001, date.getYear());
192+
assertEquals(5, date.getMonthOfYear());
193+
assertEquals(25, date.getDayOfMonth());
194+
}
186195

187196
/*
188197
/**********************************************************

0 commit comments

Comments
 (0)