Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json 结构类型编解码器的自动派生_Json_Scala_Circe_Structural Typing - Fatal编程技术网

Json 结构类型编解码器的自动派生

Json 结构类型编解码器的自动派生,json,scala,circe,structural-typing,Json,Scala,Circe,Structural Typing,给定以下JSON结构 val rawJson = """ |{ | "users": [ | { | "name": "Mario", | "age": 10, | "address": { | "street": "13 Blvd", | "postcode": "ABC 123" | }

给定以下JSON结构

  val rawJson =
    """
      |{
      |  "users": [
      |    {
      |      "name": "Mario",
      |      "age": 10,
      |      "address": {
      |        "street": "13 Blvd",
      |        "postcode": "ABC 123"
      |      }
      |    },
      |    {
      |      "name": "Wario",
      |      "age": 70,
      |      "address": {
      |        "street": "22 Blvd",
      |        "postcode": "CBA 321"
      |      }
      |    }
      |  ]
      |}
    """.stripMargin
以及相应的模型

  case class Address(street: String, postcode: String)
  case class User(name: String, age: Int, address: Address)
  case class RequestBody(users: List[User])
circe能够自动反序列化

decode[RequestBody](rawJson))
当通过结构类型定义模型时,是否可以进行自动反序列化

  case class RequestBody(users: List[ {
    val name: String
    val age: Int
    val address: {
      val street: String
      val postcode: String
    }
  }])

我想没有。Circe使用Shapeless-under-the-hood来推导编解码器。和Shapeless适用于密封的trait+case类。结构类型不是ADT