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

No Json serializer found when trying to compose JsObject

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

编译时出现错误:

No Json serializer found for type Object. Try to implement an implicit Writes or Format for this type. val newParent = parent + ("kids" -> Json.toJson(kidsNamesMap.getOrElse(parentName,"")))

但我现在确定要添加哪个作者,之前为我的案例写过作者class但我不确定...

谢谢

那是因为 kidsNamesMap.getOrElse(parentName,"") 没有真正的类型。从地图上你要么得到 List[String],要么得到 String (.getOrElse)。 理想的方法是将其替换为:

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