Я использую Scala. Я не очень знаком со Scala, но, по крайней мере, он работал для использования jackson
JSON-анализатора.
Теперь у меня очень странная проблема. Если входная строка JSON имеет синтаксическую ошибку, методы разбора зависают, не дают ответа и не исключение. Я использую этот объект / методы, который отлично работает при правильном вводе:
import com.fasterxml.jackson.databind.{DeserializationFeature, ObjectMapper}
import org.json4s.jackson.JsonMethods.parse
import com.fasterxml.jackson.module.scala.experimental.ScalaObjectMapper
import com.fasterxml.jackson.module.scala.DefaultScalaModule
object JsonHelper {
val internal_mapper = new ObjectMapper() with ScalaObjectMapper
internal_mapper.registerModule(DefaultScalaModule)
implicit def jsonStrToAny(jsonStr: String)(implicit m : Manifest[Any]): Any = {
internal_mapper.readValue[Any](jsonStr)
}
}
В коде я просто называю: JsonHelper.jsonStrToAny("[{\"660\":false]")
Обновление:
Этот метод используется методом-обработчиком kafka, который называется onReceived
. @Thilo указал, что исключение может быть «заблокировано» вызывающим кодом. Может быть, этот обработчик кафки «проглотил» исключение?
private val checker = Consumer
.plainSource(consumerSettings, Subscriptions.topics(CHECK_REQUEST_TOPIC))
.toMat(Sink.foreach(onReceived))(Keep.both)
.mapMaterializedValue(DrainingControl.apply)
.run()
У кого-нибудь есть подсказка для меня, почему это может быть?
Заранее спасибо,
Allan