tôi đang cố gắng để có được json4s để trích xuất một cái gì đó nhưng tôi nhận được một "lỗi không rõ"JSON4S chưa biết lỗi
Mã của tôi trông giống như:
import org.json4s._
import org.json4s.jackson.JsonMethods._
implicit val formats = org.json4s.DefaultFormats
case class Person(name: String, age: Int)
val json = """{"name":"joe","age":15}"""
print(parse(json).extract[Person])
Lỗi Đường dẫn:
org.json4s.MappingException: unknown error
at org.json4s.Extraction$.extract(Extraction.scala:50)
at org.json4s.ExtractableJsonAstNode.extract(ExtractableJsonAstNode.scala:21)
at Main$$anon$1.<init>(test.scala:8)
at Main$.main(test.scala:1)
at Main.main(test.scala)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at scala.tools.nsc.util.ScalaClassLoader$$anonfun$run$1.apply(ScalaClassLoader.scala:78)
at scala.tools.nsc.util.ScalaClassLoader$class.asContext(ScalaClassLoader.scala:24)
at scala.tools.nsc.util.ScalaClassLoader$URLClassLoader.asContext(ScalaClassLoader.scala:88)
at scala.tools.nsc.util.ScalaClassLoader$class.run(ScalaClassLoader.scala:78)
at scala.tools.nsc.util.ScalaClassLoader$URLClassLoader.run(ScalaClassLoader.scala:101)
at scala.tools.nsc.ObjectRunner$.run(ObjectRunner.scala:33)
at scala.tools.nsc.ObjectRunner$.runAndCatch(ObjectRunner.scala:40)
at scala.tools.nsc.ScriptRunner.scala$tools$nsc$ScriptRunner$$runCompiled(ScriptRunner.scala:171)
at scala.tools.nsc.ScriptRunner$$anonfun$runScript$1.apply(ScriptRunner.scala:188)
at scala.tools.nsc.ScriptRunner$$anonfun$runScript$1.apply(ScriptRunner.scala:188)
at scala.tools.nsc.ScriptRunner$$anonfun$withCompiledScript$1.apply$mcZ$sp(ScriptRunner.scala:157)
at scala.tools.nsc.ScriptRunner$$anonfun$withCompiledScript$1.apply(ScriptRunner.scala:131)
at scala.tools.nsc.ScriptRunner$$anonfun$withCompiledScript$1.apply(ScriptRunner.scala:131)
at scala.tools.nsc.util.package$.waitingForThreads(package.scala:26)
at scala.tools.nsc.ScriptRunner.withCompiledScript(ScriptRunner.scala:130)
at scala.tools.nsc.ScriptRunner.runScript(ScriptRunner.scala:188)
at scala.tools.nsc.ScriptRunner.runScriptAndCatch(ScriptRunner.scala:201)
at scala.tools.nsc.MainGenericRunner.runTarget$1(MainGenericRunner.scala:58)
at scala.tools.nsc.MainGenericRunner.process(MainGenericRunner.scala:80)
at scala.tools.nsc.MainGenericRunner$.main(MainGenericRunner.scala:89)
at scala.tools.nsc.MainGenericRunner.main(MainGenericRunner.scala)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
Caused by: java.lang.NoSuchFieldException: MODULE$
at java.lang.Class.getField(Class.java:1520)
at org.json4s.Meta$$anonfun$mappingOf$1$$anonfun$8.apply(Meta.scala:208)
at org.json4s.Meta$$anonfun$mappingOf$1.apply(Meta.scala:207)
at org.json4s.Meta$$anonfun$mappingOf$1.apply(Meta.scala:195)
at org.json4s.Meta$Memo.memoize(Meta.scala:240)
at org.json4s.Meta$.mappingOf(Meta.scala:195)
at org.json4s.Extraction$.mkMapping$1(Extraction.scala:207)
at org.json4s.Extraction$.org$json4s$Extraction$$extract0(Extraction.scala:214)
at org.json4s.Extraction$.extract(Extraction.scala:47)
... 34 more
tôi chạy SCALA 2.9.2 với json4s 2.9.2: 3.1.0 với trình phân tích cú pháp jackson 2.1.1
trước khi tôi đi đến "json4s" tôi đã thử jackson di trực tiếp và thậm chí không có những ví dụ được cung cấp để làm việc với khai thác vì vậy tôi hình một cái gì đó là tắt ở đây nhưng không rly một đầu mối nơi để bắt đầu tìm kiếm.
Cảm ơn trước sự giúp đỡ :)
Great câu trả lời. Điều này có thể gây hiểu lầm cho những người mới bắt đầu với Scala. Cảm ơn. @Oliver nên chấp nhận câu trả lời này. – Shrayas
Cảm ơn bạn! Điều này chỉ giúp tôi tiết kiệm rất nhiều thời gian. –