'Parse an optional metadata key containing a time or a string:
if present, assume it\'s a string if it doesn\'t parse.'

def from_json(self, value):

    try:
        result = super(StringOrDate, self).from_json(value)
    except ValueError:
        return value
    if (result is None):
        return value
    else:
        return result
