如何检查 JsValue 是 null 还是 Empty [Scala, Play]
How to check whether a JsValue is null or Empty [Scala, Play]
我正在尝试编写一个简单的实用程序来检查 JsValue
是 null
还是空的。我有这个:
def is_nullOrEmpty(x: JsValue): JsBoolean = {
JsBoolean(
(x) match {
case _ => x == null
case _ => x.toString().isEmpty
}
)
}
我对 Scala + Play 还很陌生,我不确定这是否是正确的方法。
或者这个:
def is_nullOrEmpty(x: JsValue) = x == null || x.toString().trim.isEmpty
我这里也包括.trim
你能帮忙吗?
我不明白 - 为什么名为 is_nullOrEmpty
的方法的输出是 JsBoolean
?您是说 Boolean
吗?
def isNullOrEmpty(x: JsValue): Boolean = x match {
case null => true
case JsNull => true
case _ => false
}
如果您还想检查 String
或 Array
是否为您的 JsValue,那么,
def isNullOrEmpty(x: JsValue): Boolean = x match {
case null => true
case JsNull => true
case JsString(string) => string.trim.isEmpty
case JsArray(array) => array.isEmpty
case _ => false
}
或者,如果您想将其转换为 JsBoolean
和 return null
如果它不是兼容值,
def convertToJsBoolean(x: JsValue): JsBoolean = x match {
case jsBoolean: JsBoolean => jsBoolean
case _ => null
}
在这种情况下,您还可以使用 Option[JsBoolean]
作为您的输出类型,
def convertToJsBoolean(x: JsValue): Option[JsBoolean] = x match {
case jsBoolean: JsBoolean => Option(jsBoolean)
case _ => None
}
您可以使用 Option
。请尝试以下操作:
def is_nullOrEmpty(x: JsValue): JsBoolean = Option(x) match {
case None =>
JsFalse
case Some(value) =>
if (Json.stringify(value) == "") {
JsFalse
} else {
JsTrue
}
}
或者在一个班轮中更容易:
def is_nullOrEmpty1(x: JsValue): JsBoolean = JsBoolean(Option(x).exists(Json.stringify(_) != ""))
话虽如此,空字符串的检查是多余的,如 和许多其他帖子中所述。
代码 运行 在 Scastie。
我正在尝试编写一个简单的实用程序来检查 JsValue
是 null
还是空的。我有这个:
def is_nullOrEmpty(x: JsValue): JsBoolean = {
JsBoolean(
(x) match {
case _ => x == null
case _ => x.toString().isEmpty
}
)
}
我对 Scala + Play 还很陌生,我不确定这是否是正确的方法。
或者这个:
def is_nullOrEmpty(x: JsValue) = x == null || x.toString().trim.isEmpty
我这里也包括.trim
你能帮忙吗?
我不明白 - 为什么名为 is_nullOrEmpty
的方法的输出是 JsBoolean
?您是说 Boolean
吗?
def isNullOrEmpty(x: JsValue): Boolean = x match {
case null => true
case JsNull => true
case _ => false
}
如果您还想检查 String
或 Array
是否为您的 JsValue,那么,
def isNullOrEmpty(x: JsValue): Boolean = x match {
case null => true
case JsNull => true
case JsString(string) => string.trim.isEmpty
case JsArray(array) => array.isEmpty
case _ => false
}
或者,如果您想将其转换为 JsBoolean
和 return null
如果它不是兼容值,
def convertToJsBoolean(x: JsValue): JsBoolean = x match {
case jsBoolean: JsBoolean => jsBoolean
case _ => null
}
在这种情况下,您还可以使用 Option[JsBoolean]
作为您的输出类型,
def convertToJsBoolean(x: JsValue): Option[JsBoolean] = x match {
case jsBoolean: JsBoolean => Option(jsBoolean)
case _ => None
}
您可以使用 Option
。请尝试以下操作:
def is_nullOrEmpty(x: JsValue): JsBoolean = Option(x) match {
case None =>
JsFalse
case Some(value) =>
if (Json.stringify(value) == "") {
JsFalse
} else {
JsTrue
}
}
或者在一个班轮中更容易:
def is_nullOrEmpty1(x: JsValue): JsBoolean = JsBoolean(Option(x).exists(Json.stringify(_) != ""))
话虽如此,空字符串的检查是多余的,如
代码 运行 在 Scastie。