public static void main(String[] args) {
// TODO Auto-generated method stub
String careersJson = "[{'from_date':'2001-09-21','to_date':'2011-04-02','company':'人寿保险','department':'xxx','position':'主管' },{'from_date':'0002-12-01','to_date':'2011-04-02', 'company':'人寿保险','department':'xxx','position':'主管' }]";
ObjectMapper mapper = new ObjectMapper();
mapper.configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES, true);
try {
@SuppressWarnings("unchecked")
List<Map<String, Object>> rawContatcs = mapper.readValue(careersJson, List.class);
for (Map<String, Object> item : rawContatcs) {
if(String.valueOf(item.get("from_date"))!=null)
{
System.out.println(Date.valueOf((String) item.get("from_date")));
}
else if(String.valueOf(item.get("to_date"))!=null)
{
System.out.println(Date.valueOf((String) item.get("to_date")));
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
如果去掉
mapper.configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES, true);
就会报错:
org.codehaus.jackson.JsonParseException: Unexpected character (''' (code 39)): was expecting double-quote to start field name
at [Source: java.io.StringReader@1e0be38; line: 1, column: 4]
at org.codehaus.jackson.JsonParser._constructError(JsonParser.java:1291)
at org.codehaus.jackson.impl.JsonParserMinimalBase._reportError(JsonParserMinimalBase.java:385)
at org.codehaus.jackson.impl.JsonParserMinimalBase._reportUnexpectedChar(JsonParserMinimalBase.java:306)
at org.codehaus.jackson.impl.ReaderBasedParser._handleUnusualFieldName(ReaderBasedParser.java:512)
at org.codehaus.jackson.impl.ReaderBasedParser._parseFieldName(ReaderBasedParser.java:405)
at org.codehaus.jackson.impl.ReaderBasedParser.nextToken(ReaderBasedParser.java:295)
at org.codehaus.jackson.map.deser.UntypedObjectDeserializer.mapObject(UntypedObjectDeserializer.java:173)
at org.codehaus.jackson.map.deser.UntypedObjectDeserializer.deserialize(UntypedObjectDeserializer.java:76)
at org.codehaus.jackson.map.deser.CollectionDeserializer.deserialize(CollectionDeserializer.java:120)
at org.codehaus.jackson.map.deser.CollectionDeserializer.deserialize(CollectionDeserializer.java:97)
at org.codehaus.jackson.map.deser.CollectionDeserializer.deserialize(CollectionDeserializer.java:26)
at org.codehaus.jackson.map.ObjectMapper._readMapAndClose(ObjectMapper.java:2395)
at org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:1595)
at com.webbook.action.Test.main(Test.java:26)