Мне нужно разобрать следующую строку json:
{"Тип 1}
Класс case, который я использую, выглядит так:
case class MyJsonObj(
val type: Int
)
Однако это сбивает с толку Scala, поскольку «тип» — это ключевое слово. Итак, я попытался использовать аннотацию @JsonProperty от Jacson/Jerkson следующим образом:
case class MyJsonObj(
@JsonProperty("type") val myType: Int
)
Однако синтаксический анализатор Json по-прежнему отказывается искать строку «тип» в json вместо «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)
}
Я получаю следующую ошибку:
[error] (run-main-a) com.codahale.jerkson.ParsingException: Invalid JSON. Needed [myType], but found [type].
P.S: Как видно выше, я использую джерксон/джексон, но не против переключиться на какую-нибудь другую библиотеку разбора json, если это облегчит жизнь.