gja*_*ain 1 json scala jackson jerkson
我需要解析以下 json 字符串:
{“类型”:1}
我正在使用的案例类如下所示:
case class MyJsonObj(
val type: Int
)
Run Code Online (Sandbox Code Playgroud)
然而,这让 Scala 感到困惑,因为“type”是一个关键字。因此,我尝试使用 Jacson/Jerkson 的 @JsonProperty 注释,如下所示:
case class MyJsonObj(
@JsonProperty("type") val myType: Int
)
Run Code Online (Sandbox Code Playgroud)
但是,Json 解析器仍然拒绝在 json 中查找“type”字符串,而不是“myType”。以下示例代码说明了该问题:
import com.codahale.jerkson.Json._
import org.codehaus.jackson.annotate._
case class MyJsonObj(
@JsonProperty("type") val myType: Int
)
object SimpleExample {
def main(args: Array[String]) {
val jsonLine = """{"type":1}"""
val JsonObj = parse[MyJsonObj](jsonLine)
}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
[error] (run-main-a) com.codahale.jerkson.ParsingException: Invalid JSON. Needed [myType], but found [type].
Run Code Online (Sandbox Code Playgroud)
PS:如上所示,我正在使用 jerkson/jackson,但如果这能让生活更轻松的话,我不介意切换到其他 json 解析库。
使用反引号来防止 Scala 编译器将 type 解释为关键字:
case class MyJsonObj(
val `type`: Int
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4356 次 |
| 最近记录: |