检查play.api.libs.json.Json中是否存在密钥

问题描述 投票:0回答:4

contains
类似于
play.api.libs.json.Json

的功能
val data=Map("id" -> "240190", "password" -> "password","email" -> "[email protected]")

data.contains("email")//true


val info=Json.obj("id" -> "240190", "password" -> "password","email" -> "[email protected]")

现在如何检查

info
是否包含
email

json scala collections playframework scala-collections
4个回答
24
投票
info.keys.contains("email")

.keys
返回一个带有键值的
Set
,然后你可以调用
contains
方法,我不确定是否有更直接的方法。


8
投票
(info \ "email").asOpt[String].isEmpty

asOpt 会返回Optional,我们可以进行 isEmpty 简单检查,这将实现我们想要的。


6
投票
(info \ "email").asOpt[String] match {
  case Some(data) => println("here is the value for the key email represented by variable data" + data)
  case None => println("email key is not found") 
}

0
投票

(info \ "email").asOpt[String]
仅当电子邮件是字符串时才有效。如果电子邮件是一个对象,则
(info \ "email").asOpt[String]
将为 None。 另一种方法是将
(info \ "email").toOption
Some
None
匹配。

© www.soinside.com 2019 - 2024. All rights reserved.