DecodeJson与所有失败的解码尝试?

时间:2017-06-30 18:58:05

标签: scala argonaut

argonaut docs获得以下内容:

import argonaut._
import Argonaut._

case class Person(name: String, age: Int)

implicit def PersonDecodeJson: DecodeJson[Person] =
   jdecode2L(Person.apply)("name", "age")

scala> Json.obj("name" -> jString("bob"), 
                 "age" -> jString("whoops - not a number.")
       ).as[Person]
res1: argonaut.DecodeResult[Person] = DecodeResult(Left((Int,CursorHistory(List(El(CursorOpDownField(age),true))))))

scala> Json.obj("name" -> jNumber(42), 
                "age" -> jString("whoops - not a number.")
       ).as[Person]
res2: argonaut.DecodeResult[Person] = DecodeResult(Left((String,CursorHistory(List(El(CursorOpDownField(name),true))))))

res2中,似乎age的类型不正确,即预期的数字,但得到字符串,没有显示在游标输出中。换句话说,在我看来,name上的解码失败很快。

是否有“开箱即用”DecodeJson会返回所有失败的解码尝试?

0 个答案:

没有答案