样本Json:
var testString ={“eventType”:“eventType”,
Scala案例类:
case class EventHeader(eventType:String,event-id:String)反序列化代码:
var header = new Gson().fromJson(testString,classOf[EventHeader])导致以下错误(因为"event-id“字段名中的特殊字符):
:1:错误:“:”预期,但找到标识符。case类EventHeader(事件类型:String,event-id:String)
在Java中,我们可以对"eventId“字段进行注释,并将其命名为”eventId“或"id”。
在Scala中有类似的方法吗?
发布于 2016-07-15 09:35:26
scala> case class EventHeader(eventType:String,`event-id`:String)
defined class EventHeader
scala> EventHeader("some event", "eventid")
res1: EventHeader = EventHeader(some event,eventid)注意event-id在case类声明中的引号
发布于 2016-07-16 13:06:59
import com.fasterxml.jackson.annotation._
import com.fasterxml.jackson.databind.ObjectMapper
import com.fasterxml.jackson.module.scala.DefaultScalaModule
case class EventHeader(@JsonProperty("event-id") eventId: String,@JsonProperty("eventType") eventType:String)
val mapper = new ObjectMapper
mapper.registerModule(DefaultScalaModule)
val obj = mapper.readValue("""{"eventType":"REQUEST","event-id":"6e904afa-62e8-40fb-8c6a-66a2ba21a3e1"}""", classOf[EventHeader])发布于 2019-07-02 11:46:22
使用Gson
import com.google.gson.Gson
case class Request(command_type: String, sub_commands:
java.util.ArrayList[Command])
new Gson().toJson(new Request("Command", subCommands))https://stackoverflow.com/questions/38390703
复制相似问题