我有一个带有某些字段的json,我想检查其中是否存在某些字段。我正在提取值并针对JNothing对其进行测试,但这太冗长了:
val json: JValue = ...
val jsonIsType1 = (json \ "field1") != JNothing && (json \ "field2") != JNothing
有没有更紧凑的方法可以使用json4s / lift-json检查json对象中字段的存在?理想情况是:
val jsonIsType1 = json.has("field1") && json.has("field2")
JValue没有'has'运算符,但是Scala隐式函数的强大功能使您可以轻松添加该功能。
这是一个例子:
implicit class JValueExtended(value: JValue) {
def has(childString: String): Boolean = {
if ((value \ childString) != JNothing) {
true
} else {
false
}
}
}
用法示例:
scala> val json = Json.parse("""{"field1": "ok", "field2": "not ok"}""")
scala> json.has("field1")
res10: Boolean = true
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句