作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
import play.api.libs.json._
val json: JsValue = Json.parse("""
{
"name" : "Independence",
"foundingFathers" : [ {
"name" : {
"first": "John",
"last": "Adams"
},
"country" : "United States"
}, {
"name" : {
"first": "Artur",
"last": "Mas"
},
"country" : "Catalonia"
} ]
}
""")
val lastNames = json \ "foundingFathers \ "name" \ "last"
// this does not work. it fails with: JsUndefined('last' is undefined on object: JsUndefined('name' is undefined on object: [{"name":{"first":"John","last":"Adams"},"country":"United States"},{"name":{"first":"Artur","last":"Mas"},"country":"Catalonia"}]))
// this does work, but there is too much boilerplate
val lastNames = (json \ "foundingFathers").as[List[JsObject]].map(_ \ "name" \ "last")
如何在没有样板的情况下实现结果?(在本例中我想使用 JsValues,我不想使用阅读器将 JsValue 转换为模型)
最佳答案
您可以使用隐式类来包装此功能
implicit class JsValueWrapper(val j: JsValue) extends AnyVal {
def \|(fieldName: String) = j match {
case JsArray(value) => JsArray(value.map(_ \ fieldName))
case _ => j \ fieldName
}
}
scala> json \| "foundingFathers" \| "name" \| "first"
res19: play.api.libs.json.JsValue = ["John","Artur"]
关于json - Scala Play Json 中 JsPath 到数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26236046/
考虑供应商 API 提供的以下 JSON: import play.api.libs.json._ import play.api.libs.json.Reads._ import play.api.
我正在尝试编写一个 JavaScript 函数来读取 JSON 文件,并通过将值与用户输入的字符串进行匹配来检索信息。为了导航 JSON 文件,我使用了 JSPath,但是我不知道如何使用函数在 JS
是我的眼睛欺骗了我,还是我不能使用中间包含数组元素的 JsPath 来更新嵌套节点? (例如/a/b(0)/c) val pnJson = Json.parse("""{"a": {"b": [ {"
import play.api.libs.json._ val json: JsValue = Json.parse(""" { "name" : "Independence",
假设我有一个这样的 JSON: { "name" : "Watership Down", "location" : { "lat" : 51.235685, "long" :
我是一名优秀的程序员,十分优秀!