我的json是 JsValu
// this is a list of JsObject extracted from a json
val parents = (json "parents").as[List[JsObject]]
// a map between parent name to list of their kids
val kidsNamesMap = (json "kids").as[Map[String,List[String]]]
// creating a new JsObject
val newParent = parent + ("kids" -> Json.toJson(kidsNamesMap.getOrElse(parentName,"")))
编译时,我会遇到错误:
未找到针对类型对象的JSON序列化器。尝试实施隐式 为此类型的写作或格式。 val newparent = parent ("儿童" -> json.tojson(kidsnamesmap.getorelse(parentname,'"((
,但是我现在确定要添加的作者,以前写了我的案例课,但在这里我不确定...
谢谢
那是因为kidsNamesMap.getOrElse(parentName,"")
不会真正具有类型。从地图中,您要么获得List[String]
或获得String
(.getOrElse
(。理想的方法是将其替换为:
val newParent = parent + ( "kids" -> { kidsNamesMap.get(parentName).map(Json.toJson(_)).getOrElse(JsString("")) } )