我試着寫了下面的類斯卡拉讀取與嵌套可選屬性
case class User(id: String, imageId: Option[String])
的JSON我有看起來像這樣的讀取對象:
{
"id": 1
"image": { "id" : 2 }
}
然而,「形象」領域可能不存在,或者可能爲空。 我讀看起來是這樣的:
implicit val userReader: Reads[User] = (
(JsPath \ "id").read[String] and
(JsPath \ "image" \ "id").readNullable[String]
) (User.apply _)
但是,這似乎並沒有工作,我仍然得到一個錯誤,當它發現沒有圖像的樣本。 'ValidationError [...] error.path.missing [...]/image/id'
這怎麼解決?我不想創建一個Image類,我不打算在任何地方使用它。
這顯然是一個問題,但它並沒有抱怨,因爲我試過n沒有圖像的例子,所以它看不到類型不匹配。 我把它切換到字符串,我仍然得到相同的錯誤。 – Dragos
同樣適用於根目錄中的'id' –