scala – spray-json用于列表中的正常类(非大小写)
发布时间:2020-12-16 18:46:14 所属栏目:安全 来源:网络整理
导读:我发现自己处于一种需要将 JSON序列化为非案例类的情况. 有一个班级: class MyClass(val name: String) { def SaySomething() : String = { return "Saying something... " }} 我为这个类创建了一个JsonProtocol: object MyClassJsonProtocol extends Defa
我发现自己处于一种需要将
JSON序列化为非案例类的情况.
有一个班级: class MyClass(val name: String) { def SaySomething() : String = { return "Saying something... " } } 我为这个类创建了一个JsonProtocol: object MyClassJsonProtocol extends DefaultJsonProtocol { implicit object MyClassJsonFormat extends JsonWriter[MyClass] { override def write(obj: MyClass): JsValue = JsObject( "name" -> JsString(obj.name) ) } } 稍后在代码中导入协议.. val aListOfMyClasses = List[MyClass]() ... // lets assume that has items and not an empty list import spray.json._ import MyClassJsonProtocol._ val json = aListOfMyClasses.toJson 在尝试构建项目时,我收到以下错误: 找不到类型为List [MyClass]的JsonWriter或JsonFormat spray-json已经有了通用列表的格式,我正在为我的班级提供一种格式,会出现什么问题? 提前致谢…!!! 解决方法
当我从JsonFormat而不是JsonWriter扩展MyClassJsonFormat时,它盯着工作正常.看起来只有从JsonFormat扩展时,CollectionFormats特性才有效
以下代码对我来说很好 object MyClassJsonProtocol extends DefaultJsonProtocol { implicit object MyClassJsonFormat extends JsonFormat[MyClass] { override def write(obj: MyClass): JsValue = JsObject( "name" -> JsString(obj.name) ) override def read(json: JsValue): MyClass = new MyClass(json.convertTo[String]) } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |