특성을 확장하는 케이스 클래스를 직렬화하는 동안 런타임 예외가 발생했습니다. 차례로 다른 조부모 형질을 확장시킨다.json4를 사용하여 json을 'val'또는 'lazy val'직렬화하는 동안 실행 시간 예외가 발생했습니다. json4s를 사용하여 스칼라에서 scala로 된 튜플 필드
조부모 특성에 val 또는 lazy val (튜플)이 포함 된 경우에만 문제가 발생합니다. 내가 할
trait Trait0 {
def a: Int
lazy val b: (Int, Int) = (1, 2)
// also errors if "val"
// executes if "def" or just a simple type
}
trait Trait1 extends Trait0
case class Test(a: Int) extends Trait1
object Main {
def main(args: Array[String]): Unit = {
import org.json4s._
import org.json4s.native.Serialization.write
implicit val formats = DefaultFormats
println(write(Test(1)))
}
}
런타임 예외는 "주"org.json4s.package의 $의 MappingException 스레드에서
com.adobe.formfactory.generator.Main $의 .main (31 Main.scala)에서예외입니다 : 클래스 com.adobe.formfactory.generator에서 수 없습니다 찾기 필드 나. org.json4s.reflect.package $ .fail (package.scala : 95)에서 org.json4s.reflect.ScalaSigReader $ .read $ 1 (ScalaSigReader.scala : 43) at org.json4s.reflect.ScalaSigReader $로 테스트하십시오. . $ anonfun $ readField $ 3 (ScalaSigReader.scala : 47)시 scala.Option.getOrElse (Option.scala : 121)의 6,org.json4s.reflect.ScalaSigReader $ .read $ 1 (ScalaSigReader.scala 47) org.json4s.reflect.ScalaSigReader $ .readField (ScalaSigReader.scala 49)에 org.json4s.reflect.Reflector $ ClassDescriptorBuilder에서 . $의 anonfun $으로 필드 $ 3 (Reflector.scala 69) scala.collection.TraversableLike에서 $ anonfun $ 매핑 $ 1 (TraversableLike.scala : 234). scala.collection.mutable.ResizableArray.foreach에서 (ResizableArray.scala : scala.collection.TraversableLike.map 48) : scala.collection.mutable.ArrayBuffer.foreach (ArrayBuffer.scala 52) 59) scala.collection.mutable.ResizableArray.foreach을 $ (ResizableArray.scala에서 (TraversableLike.scala : 234) org.json4s.reflect.Reflector $ ClassDescriptorBuilder.fields에서 (반사체 : scala.collection.AbstractTraversable.map에서 (104 Traversable.scala) scala.collection.TraversableLike.map $ (227 TraversableLike.scala)에서. 스칼라 68) org.json4s.reflect.Reflector $ ClassDescriptorBuilder.properties (Reflector.scala에서 184)에서 조직 85) org.json4s.reflect.Reflector $ ClassDescriptorBuilder.result (Reflector.scala에서. json4s.reflect.Reflector $ .createDescriptor (Reflector.scala : 53) org.json4s.reflect.Reflector $. $ anonfun $ describe $ 1 (Reflector.scala : 48) at org.json4s.reflect.package $ Memo .apply (package.scala : 36) at org.json4s.reflect.Reflector $ .describe (Reflector.scala : 48) at org.json4s.Extraction $ .decomposeObject $ 1 (Extraction.scala : 118) at org.json4s.Extraction $ .internalDecomposeWithBuilder (Extraction.scala : 228) at org.json4s.Extraction $ .decomposeWithBuilder (Extraction.scala : 64) at org.json4s.native.Serialization $. write (Serialization.scala : 43) at org.json4s.native.Serialization $ .write (Serialization.scala 37) com.adobe.formfactory.generator.Main.main (Main.scala)에서
Scala2.12.3
JDK1.8
json4s 네이티브 내가 json4s 추측하고 3.5.3
는 튜플 또는 기타 복합 개체의 슈퍼 체인을 통과하지 않습니까?
사용자 지정 serializer를 제공하는 경우 오류로 인해 특정 유형을 직렬화 할 수 없다는 점을 언급합니다.