Я знаю, что на этот вопрос много раз отвечали, но я не смог найти ответ на полученную ошибку ::
Я пытаюсь преобразовать строку JSON в класс case в IntelliJ IDEA CE.
Код выглядит так ::
package com.netflix.ist.gbi.application
import scala.io.Source
import scala.collection.mutable._
import org.json4s._
//import org.json4s.DefaultFormats
import com.netflix.ist.gbi.model.EventPayloadIn
import org.json4s.jackson.JsonMethods._
object ObjDataArchival extends App{
val a : ListBuffer[String] = ListBuffer()
for (line Source.fromFile("/Users/sankar.biswas/Desktop/jsonFile.json").getLines) {
a.append(line)
jsonStrToMap(line)
}
def jsonStrToMap(jsonStr: String) : EventPayloadIn = {
implicit val formats : DefaultFormats.type = org.json4s.DefaultFormats
parse(jsonStr).extract[EventPayloadIn]
}
}
Классы дел определены в файле scala, который был импортирован.
но когда я запускаю его, я получаю сообщение об ошибке ниже: *
Exception in thread "main" java.lang.NoSuchMethodError: scala.Function0.$init$(Lscala/Function0;)V
at org.json4s.ThreadLocal.<init>(Formats.scala:348)
at org.json4s.DefaultFormats.$init$(Formats.scala:355)
at org.json4s.DefaultFormats$.<init>(Formats.scala:333)
at org.json4s.DefaultFormats$.<clinit>(Formats.scala)
at com.apple.ist.gbi.application.ObjDataArchival$.jsonStrToMap(ObjDataArchival.scala:21)
at com.apple.ist.gbi.application.ObjDataArchival$$anonfun$1.apply(ObjDataArchival.scala:16)
at com.apple.ist.gbi.application.ObjDataArchival$$anonfun$1.apply(ObjDataArchival.scala:13)
at scala.collection.Iterator$class.foreach(Iterator.scala:893)
at scala.collection.AbstractIterator.foreach(Iterator.scala:1336)
at com.apple.ist.gbi.application.ObjDataArchival$.delayedEndpoint$com$apple$ist$gbi$application$ObjDataArchival$1(ObjDataArchival.scala:13)
at com.apple.ist.gbi.application.ObjDataArchival$delayedInit$body.apply(ObjDataArchival.scala:10)
at scala.Function0$class.apply$mcV$sp(Function0.scala:34)
at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12)
at scala.App$$anonfun$main$1.apply(App.scala:76)
at scala.App$$anonfun$main$1.apply(App.scala:76)
at scala.collection.immutable.List.foreach(List.scala:381)
at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:35)
at scala.App$class.main(App.scala:76)
at com.apple.ist.gbi.application.ObjDataArchival$.main(ObjDataArchival.scala:10)
at com.apple.ist.gbi.application.ObjDataArchival.main(ObjDataArchival.scala)
Ошибка, кажется, в этой строке ::
implicit val formats : DefaultFormats.type = org.json4s.DefaultFormats
Я пробовал с похожими строками вроде: *
implicit val formats = DefaultFormats
Но никак не мог решить проблему.
Заранее спасибо!