case class Person(
@key("first_name") firstName: String = "N/A",
@key("last_name") lastName: String)
object Person {
implicit val rw: RW[Person] = macroRW
}
val json = """{"last_name": "Snow"}"""
val p = read[Person](json)
This code fragment executes with exception:
Exception in thread "main" java.lang.ExceptionInInitializerError
at com.nitka.rb.RBSyncApp.main(RBSyncApp.scala)
Caused by: upickle.core.AbortException: missing keys in dictionary: first_name at index 20
at ujson.CharParser$$anon$1.applyOrElse(CharParser.scala:343)
at ujson.CharParser$$anon$1.applyOrElse(CharParser.scala:341)
at scala.runtime.AbstractPartialFunction.apply(AbstractPartialFunction.scala:35)
at ujson.CharParser.liftedTree1$1(CharParser.scala:496)
at ujson.CharParser.tryCloseCollection(CharParser.scala:496)
at ujson.CharParser.parseNested(CharParser.scala:462)
at ujson.CharParser.parseTopLevel0(CharParser.scala:323)
at ujson.CharParser.parseTopLevel(CharParser.scala:307)
at ujson.CharParser.parse(CharParser.scala:59)
at ujson.StringParser$.transform(StringParser.scala:28)
at ujson.StringParser$.transform(StringParser.scala:28)
at ujson.Readable$fromTransformer.transform(Readable.scala:13)
at upickle.Api.read$$anonfun$1(Api.scala:37)
at upickle.core.TraceVisitor$.withTrace(TraceVisitor.scala:18)
at upickle.Api.read(Api.scala:37)
at upickle.Api.read$(Api.scala:17)
at upickle.default$.read(Api.scala:133)
at com.nitka.rb.RBSyncApp$.<clinit>(RBSyncApp.scala:76)
... 1 more
Caused by: upickle.core.Abort: missing keys in dictionary: first_name
at com.nitka.rb.RBSyncApp$$anon$1.make(RBSyncApp.scala:72)
at com.nitka.rb.RBSyncApp$$anon$1.make(RBSyncApp.scala:72)
at upickle.implicits.CaseClassReaderPiece$$anon$1.visitEnd(CaseClassReader.scala:30)
... 16 more
This code fragment executes with exception:
Reproduced with uPickle version 1.4.0
ID: 360 Original Author: pharod