尝试编写JsObject时没有找到Json序列化程序

时间:2017-04-26 23:00:51

标签: scala playframework playframework-2.0

我的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,"")))

但我现在确定要添加什么作家,之前为我的案例类编写作者但在这里我不确定......

谢谢

1 个答案:

答案 0 :(得分:1)

多数民众赞成因为kidsNamesMap.getOrElse(parentName,"")不会有真正的类型。在地图上,您可以获得List[String],也可以获得String.getOrElse)。 理想的方法是将其替换为:

val newParent = parent + ( "kids" -> { kidsNamesMap.get(parentName).map(Json.toJson(_)).getOrElse(J‌​sString("")) } )