gpt4 book ai didi

json - 使用 Play Framework 2.1 的 Option 的 JsObject 中的空值

转载 作者:行者123 更新时间:2023-12-01 01:05:52 24 4
gpt4 key购买 nike

我有一个带有一些选项的案例类:

case class Person (
name: String,
nationality: Option[String],
email: Option[String],
gender: Option[String]
)

使用 play 2.1.3 我正在尝试创建一个如下所示的 JSON:
{"name": "Joe", "email": "john@doe.com"}

对于一个对象:
val user = new User("Joe, None, Some("john@doe.com"), Some("male"))

和:
val myJson = Json.obj("name" -> user.name, 
"nationality" -> user.nationality, "email" -> user.email)

但是我得到:
{"name": "Joe", "nationality": null, "email": "john@doe.com"}

如何避免在 JSON 中使用空值的国籍?

最佳答案

在意识到问题与 Play JSON 处理有关后,我设法找到了受 I need advice on Play's Json and elegant Option handling in the Writes trait 启发的解决方案。 .我不相信这是最优雅的解决方案,但它有效:

def writes(person: Person): JsValue = {
JsObject(
Seq[(String, JsValue)]() ++
Some(person.name).map("name" -> JsString(_)) ++
person.email.map("email" -> JsString(_))
)
}

关于json - 使用 Play Framework 2.1 的 Option 的 JsObject 中的空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18725226/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com