尝试编写 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(JsString("")) } )
我的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(JsString("")) } )