dou*_*laz 3 json scala lift-json json4s
我有一些带有一些字段的json,我想检查它们中是否有一些存在.我正在提取值并针对JNothing测试它,但它太冗长了:
val json: JValue = ...
val jsonIsType1 = (json \ "field1") != JNothing && (json \ "field2") != JNothing
Run Code Online (Sandbox Code Playgroud)
是否有更紧凑的方法使用json4s/lift-json检查json对象中是否存在字段?理想情况如下:
val jsonIsType1 = json.has("field1") && json.has("field2")
Run Code Online (Sandbox Code Playgroud)
Dam*_*iya 19
JValue没有'has'操作符,但Scala的implicits功能允许您添加该功能而不会有太多麻烦.
这是一个例子:
implicit class JValueExtended(value: JValue) {
def has(childString: String): Boolean = {
if ((value \ childString) != JNothing) {
true
} else {
false
}
}
}
Run Code Online (Sandbox Code Playgroud)
用法示例:
scala> val json = Json.parse("""{"field1": "ok", "field2": "not ok"}""")
scala> json.has("field1")
res10: Boolean = true
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8260 次 |
| 最近记录: |