我有一个简单的json:
{
"boys": [
{
"name": "john",
"lname": "cross"
},
{
"name": "jack",
"lname": "silver"
}
],
"girls": [
{
"name": "mary",
"lname": "kers"
},
{
"name": "jane",
"lname": "daw"
}
]
}
我希望从json中获取boys
对象列表,并为每个我想调用方法的名称添加一个新字段,并将该方法返回的值添加到boys对象... < / p>
所以我开始使用类似的东西:
// parsing the json above
val json: JsValue = Json.parse(...)
// get the boys
val boys = (json \ "boys").get
// create new boys
val newBoys = ???
// update the json
val updatedJson = json.as[JsObject] + ("boys" -> newBoys)
但我不确定如何实施newBoys
...
假设我有一个方法:
def getParentName:(boyName: String) = db.getParent(boyName)
所以现在我该怎么做:
- &GT;迭代男孩
- &GT;使用男孩名称
致电getParentName
- &GT;向返回值的男孩插入一个新字段
谢谢!
答案 0 :(得分:0)
如果你只想要新男孩,
// create new boys
val newBoys = Json.arr(
Json.obj("name" -> "boy1", "lname" -> "lboy1"),
Json.obj("name" -> "boy2", "lname" -> "lboy2")
)
val updatedJson = json.as[JsObject] + "boys" -> newBoys
或者,如果你想追加现有男孩,
// create new boys
val newBoys = boys ++ Json.arr(
Json.obj("name" -> "boy1", "lname" -> "lboy1"),
Json.obj("name" -> "boy2", "lname" -> "lboy2")
)
val updatedJson = json.as[JsObject] + "boys" -> newBoys