ScalaJson:遍历 JSValue 结构(JSONPath 语法),其中键可能是两个不同字符串之一
ScalaJson: Traversing JSValue structure (JSONPath syntax) where key might be one of two different strings
我需要从可能以几种不同方式构建的 JsValue 中检索信息购买我要查找的特定值将始终使用相似的名称。
所以例如我可以有这样的东西:
{
"name" : "Watership Down",
"location" : {
"lat" : 51.235685,
"long" : -1.309197
}
}
或
{
"title" : "Watership Down",
"size" : "M",
"location" : {
"latitude" : 51.235685,
"longitude" : -1.309197
}
}
我希望能够做到:val text = json \ "name"|"title"
我知道我想要的是 name
或 title
但不确定在给定情况下是哪个。有没有什么方法可以用类似于 Scala 的 .getOrElse()
方法的 "or" 做一些类似于我上面所做的事情?
你可以这样做:
val text = (json \ "name").asOpt[String]
.getOrElse((json \ "title").as[String])
我需要从可能以几种不同方式构建的 JsValue 中检索信息购买我要查找的特定值将始终使用相似的名称。
所以例如我可以有这样的东西:
{
"name" : "Watership Down",
"location" : {
"lat" : 51.235685,
"long" : -1.309197
}
}
或
{
"title" : "Watership Down",
"size" : "M",
"location" : {
"latitude" : 51.235685,
"longitude" : -1.309197
}
}
我希望能够做到:val text = json \ "name"|"title"
我知道我想要的是 name
或 title
但不确定在给定情况下是哪个。有没有什么方法可以用类似于 Scala 的 .getOrElse()
方法的 "or" 做一些类似于我上面所做的事情?
你可以这样做:
val text = (json \ "name").asOpt[String]
.getOrElse((json \ "title").as[String])