Scala将单词保留为JSON字段名称,带有Json.writes [A](等效于@Ser
发布时间:2020-12-16 18:44:21 所属栏目:安全 来源:网络整理
导读:我正在使用Play 2.4.3amp ;;制作 JSON. Scala以下列方式提供了一个用Json.writes创建的隐式Writes [DeviceJson]. import play.api.libs.json.Jsoncase class DeviceJson(name: String,serial: Long,type: String)object DeviceJson { implicit val writes =
我正在使用Play 2.4.3& ;;制作
JSON. Scala以下列方式提供了一个用Json.writes创建的隐式Writes [DeviceJson].
import play.api.libs.json.Json case class DeviceJson(name: String,serial: Long,type: String) object DeviceJson { implicit val writes = Json.writes[DeviceJson] } 当然,上面的代码没有编译,因为我试图在case类中使用保留字类型作为字段名. 在这种情况下,输出JSON字段名称的最简单方法是什么,例如我不能用作Scala字段名称的类型或匹配? 例如,使用Java和Gson,使用自定义JSON字段名称(与代码中的字段名称不同)对于 我知道我可以通过滚动我自己的Writes实现来做到这一点: case class DeviceJson(name: String,deviceType: String) object DeviceJson { implicit val writes = new Writes[DeviceJson] { def writes(json: DeviceJson) = { Json.obj( "name" -> json.name,"serial" -> json.serial,"type" -> json.deviceType ) } } } 但这是笨拙和重复的,特别是如果班级有很多领域.有更简单的方法吗? 解决方法
在您的案例类中,您可以使用反引号作为字段名称:
case class DeviceJson(name: String,`type`: String) 有了这个,你的写作应该有效 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |