Implement json.Marshaler and json.Unmarshaler