Неявное преобразование с использованием as из JsLookupResult в List[Map[String, JsValue]] ошибка
У меня есть это scala
код, который анализирует json
и получает notifiers
объект из jsonValue
,
object App {
def main(args: Array[String]) {
val json =
"""{
"notifiers":[
{
"type":"url",
"attributes":{
"msg":"Hello world!"
}
}
],
"filters":[],
"position":{}
}"""
val jsonValue: JsValue = Json.parse(json)
(jsonValue \ "notifiers").as[List[Map[String, JsValue]]]
}
}
Почему я получаю эту ошибку в последней строке?
Несколько маркеров в этой строке: - Точка разрыва строки:App [строка: 25] - Приложение - Обнаружено неявное преобразование: jsonValue ⇒ jsValueToJsLookup(jsonValue): play.api.libs.json.JsLookup - плохая символьная ссылка. Подпись в DefaultReads.class ссылается на термин time в пакете Java, который недоступен. Он может полностью отсутствовать в текущем пути к классам или версия в пути к классам может быть несовместима с версией, используемой при компиляции DefaultReads.class.
Используя Scala 2.10.6, этот проект представляет собой модуль maven с com.typesafe.play
зависимость
<dependency>
<groupId>com.typesafe.play</groupId>
<artifactId>play-json_2.10</artifactId>
<version>2.4.6</version>
</dependency>
Ps. Я сделал то же самое в какой-то другой программе, где я использую это .as
(def as[T](implicit fjs: Reads[T]): T
) набрать конвертировать из JsLookupResult
в List[Map[String, JsValue]]
без ошибок.
1 ответ
Попробуйте использовать JDK 8 или предыдущую версию Play. Play 2.4 поддерживает только JDK 8 ( https://www.playframework.com/documentation/2.4.x/Migration24) - ошибка, которую вы получаете из-за невозможности найти участника time
в упаковке java
, который был введен с JDK 8.