有时候,需要将从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类的更多相关文章

  1. java 写一个JSON解析的工具类

    上面是一个标准的json的响应内容截图,第一个红圈”per_page”是一个json对象,我们可以根据”per_page”来找到对应值是3,而第二个红圈“data”是一个JSON数组,而不是对象,不能 ...

  2. JSON解析保存在类中

    //my.h#ifndef __1_Header_h#define __1_Header_h#define DEBUG 1#define aa 1 #ifdef aa#ifdef DEBUG#defi ...

  3. C#字符串数组排序 C#排序算法大全 C#字符串比较方法 一个.NET通用JSON解析/构建类的实现(c#) C#处理Json文件 asp.net使用Jquery+iframe传值问题

    C#字符串数组排序   //排序只带字符的数组,不带数字的 private   string[]   aa   ={ "a ", "c ", "b & ...

  4. 一个.NET通用JSON解析/构建类的实现(c#)转

    转自:http://www.cnblogs.com/xfrog/archive/2010/04/07/1706754.html NET通用JSON解析/构建类的实现(c#) 在.NET Framewo ...

  5. Scala学习文档-样本类与模式匹配(match,case,Option)

    样本类:添加了case的类便是样本类.这种修饰符可以让Scala编译器自动为这个类添加一些语法上的便捷设定. //样本类case class //层级包括一个抽象基类Expr和四个子类,每个代表一种表 ...

  6. ZT: C#不建类直接Json解析与取值

    C#不建类直接Json解析与取值 2017年10月19日 15:58:22 圆圆娃哈哈 阅读数:701    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn. ...

  7. iOS 自己封装的网络请求,json解析的类

    基本上所有的APP都会涉及网络这块,不管是用AFNetWorking还是自己写的http请求,整个网络框架的搭建很重要. 楼主封装的网络请求类,包括自己写的http请求和AFNetWorking的请求 ...

  8. Json解析类

      Json解析类 定义两个辅助类 public class JSONObject : Dictionary<string, object> { } public class JSONAr ...

  9. 基于json-lib-2.2.2-jdk15.jar的JSON解析工具类大集合

    json解析之前的必备工作:导入json解析必须的六个包 资源链接:百度云:链接:https://pan.baidu.com/s/1dAEQQy 密码:1v1z 代码示例: package com.s ...

  10. scala学习手记40 - 使用case类

    前面两节我们已经多次接触过case关键字了.case关键字不仅可以用在match/case中来执行模式匹配,也可以用来修饰类.不过用case修饰的类也主要是用来做模式匹配.在上一节曾经提到过match ...

随机推荐

  1. vue3切换theme功能

    切换主题,老生常谈.反正我是第一次弄,还挺巧妙 我的实现方式是通过:root的修改,来一键换色 :root { // 主题色 --ry-primary-color: #ff9c00; // layou ...

  2. Vue3 好文收藏

    实用!最新的几个 Vue 3 重要特性提案 http://www.zyiz.net/tech/detail-142574.html

  3. 启用reactRouter,让Navigator支持多页面

    启用reactRouter,让Navigator支持多页面 当前系统就一个页面,感觉是时候让她晋级到多页面程序了. 网上此类教程,我只记录我需要的最小范围. 0.目标 整站由原来的一个页面,变成2个页 ...

  4. linux脚本免密的方法/不用输入密码

    第一种方法:使用管道(上一个命令的 stdout 接到下一个命令的 stdin):在脚本首行添加 #!/bin/bashecho password | sudo -S apt-get update 第 ...

  5. 在 Windows 上利用Qwen大模型搭建一个 ChatGPT 式的问答小助手

    本文首发于公众号:Hunter后端 原文链接:在 Windows 上利用Qwen大模型搭建一个 ChatGPT 式的问答小助手 最近 ChatGPT 式的聊天机器人比较火,可以提供各种问答功能,阿里最 ...

  6. 工作中最常见的6种OOM问题

    前言 最近我写的几篇线上问题相关的文章:<糟糕,CPU100%了><如何防止被恶意刷接口><我调用第三方接口遇到的13大坑>发表之后,在全网广受好评. 今天接着线上 ...

  7. 如何打造一个花里胡哨的Github个人主页?

    1.介绍 2.使用 2.1.创建一个同名仓库 2.2.引用模板 2.3.为内容添加有趣模块 2.3.1.徽章badge 2.3.2.waka 时间展示 2.3.3.展示 GitHub stars 等信 ...

  8. MySQL函数GROUP_CONCAT()函数简介

    一.数据需求按id分组然后把name用英文逗号分隔开 id name countryid age 1 曹操 1 56 2 刘备 2 47 3 孙权 3 38 4 司马懿 1 61 5 诸葛亮 2 42 ...

  9. drools中no-loop和lock-on-active的区别

    一.背景 在我们编写drools规则的过程中,可能会发生死循环,那么该怎么解决呢?如果想某一个规则只执行一次,即别的规则导致该规则重新执行,也不需要执行,那么该怎么解决呢? 二.解决方案 针对以上问题 ...

  10. 容器镜像加速指南:探索 Kubernetes 缓存最佳实践

    介绍 将容器化应用程序部署到 Kubernetes 集群时,由于从 registry 中提取必要的容器镜像需要时间,因此可能会出现延迟.在应用程序需要横向扩展或处理高速实时数据的情况下,这种延迟尤其容 ...