저는 대개 Json.writes를 사용할 때 상속 된 필드를 포함하지 않는 것처럼 보입니다. .추상 클래스를 확장 할 때 Json writes가 작동하지 않는 것처럼 보입니다.
implicit val userResponseWrites = Json.writes[UserRespopnse]
case class UserResponse(var userId: Int, var name: String) extends BaseResponse
abstract class BaseResponse(var success: Boolean = false, var message: String = "")
그런 다음 json 응답에는 BaseResponse 클래스의 success 및 message 필드가 포함되지 않습니다.
이 작업이 가능합니까? 아니면 쓰기 기록 장치를 수동으로 써야합니까?
이것은 컴파일되지 않습니다. 'BaseResponse'로 무엇을 얻으 려하고 있으며, 그 값들을 어떻게 채우고 있습니까? 'UserResponse'는 확장시'BaseResponse' 생성자에'success'와'message'를 제공하지 않습니다. –
처음에는 BaseResponse를 확장 할 경우 기본 생성자에 대한 값이 필요합니다. 예 : case 클래스 UserResponse (var userId : Int, var name : String) BaseResponse (true, "message")를 확장합니다. –
필드가 vars가 될 필요가 있는지 다시 생각해 보는 것도 좋습니다. 그것들을 값으로 사용함으로써 객체가 변경되는 것에 대해 걱정할 필요없이 객체를 전달하는 것이 더 안전합니다. –