Implements json.UnmarshalJSON