首页 > Web开发 > 详细

scala json解析到case类

时间:2021-07-22 11:04:42      阅读:29      评论:0      收藏:0      [点我收藏+]

有时候,需要将从json文件读取程序配置设置,并同步到定义好的一些case类中,这个时候可以使用 io.circe解析json文件,并同步文件字段到定义好的case类


case class Config(
                 comment:String,
                 dir:String,
                 executors:Option[Int],
                 isOk:Option[Boolean],
                 isRequires:Boolean,
                 num:Int,
                 ratio:Double
                 )


object JsonDecoding {
  def decodingJson(): Unit = {
    var jsonStr:String =
      """{
        |"comment":"this is comment",
        |"dir":"this is dir",
        |"executors":10,
        |"isOk":true,
        |"isRequires":true,
        |"num":100,
        |"ratio":0.2,
        |"test":10000
        |}
        |
        |""".stripMargin

    println(jsonStr)

    import io.circe.parser._
    import io.circe.generic.auto._

    val decodeStr = decode[Config](jsonStr) match {
      case Left(msg) => throw new RuntimeException(
        s"""
          |===================
          |parser error ${msg}
          |""".stripMargin
      )
      case Right(source) => source
    }

    println(decodeStr)

  }
}

需要两个包:

<dependency>
      <groupId>io.circe</groupId>
      <artifactId>circe-core_2.11</artifactId>
      <version>0.12.0-M3</version>
    </dependency>
    <dependency>
      <groupId>io.circe</groupId>
      <artifactId>circe-parser_2.11</artifactId>
      <version>0.12.0-M3</version>
    </dependency>
    <dependency>
      <groupId>io.circe</groupId>
      <artifactId>circe-generic_2.11</artifactId>
      <version>0.12.0-M3</version>
    </dependency>


scala json解析到case类

原文:https://www.cnblogs.com/zhouyc/p/15042066.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!