我的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,"")))
编译时我收到错误:
找不到类型为Object的Json序列化程序。尝试实现隐式 此类型的写入或格式。 val newParent = parent +(" kids" - > Json.toJson(kidsNamesMap.getOrElse(parentName,"")))
但我现在确定要添加什么作家,之前为我的案例类编写作者但在这里我不确定......
谢谢
答案 0 :(得分:1)
多数民众赞成因为kidsNamesMap.getOrElse(parentName,"")
不会有真正的类型。在地图上,您可以获得List[String]
,也可以获得String
(.getOrElse
)。
理想的方法是将其替换为:
val newParent = parent + ( "kids" -> { kidsNamesMap.get(parentName).map(Json.toJson(_)).getOrElse(JsString("")) } )