检查json 或 yaml 文件格式
有时候我们修改了配置 json 或者 yaml 文件,需要校验下文件格式是否正确
源码
package mainimport ("flag""fmt""github.com/ChengjinWu/gojson""github.com/goccy/go-yaml""io/ioutil""os""path/filepath"
)// GOOS=linux go build -x -v -ldflags "-s -w" -o gojson main.go
func main() {//if len(os.Args)!=0{// fmt.Println(os.Args[0])// args 第一个片 是文件路径//}//fmt.Println(os.Args[1]) // 第二个参数是, 用户输入的参数 例如 go run osdemo01.go 123//flag简单使用方法backup_dir := flag.String("f", "config.json", "文件格式 -f config.json | -f config.yaml")flag.Parse()fmt.Println("验证文件: ",*backup_dir)filename :=*backup_dirbools := Exists(filename)if !bools{fmt.Println("文件不存在");return}var suffix stringsuffix = filepath.Ext(filename)switch suffix {case ".json":fmt.Println("开始检验json文件",filename);err := validJson(filename)if err != nil {fmt.Println("校验失败",err);return}else{fmt.Println("格式正确");}case ".yaml":fmt.Println("开始检验yaml文件",filename);err := validYmal(filename)if err != nil {fmt.Println("校验失败",err);return}else{fmt.Println("格式正确");}default:fmt.Println("没找到验证的文件");}}func validJson(filename string ) (err error) {// 1, 把配置文件读进来content, err := ioutil.ReadFile(filename);if err != nil {fmt.Println(err);return}err = gojson.CheckValid(content)return}func validYmal(filename string ) (err error ) {yamlFile, err := ioutil.ReadFile(filename)if err != nil {return}result := make(map[string]interface{})if err != nil {return}err = yaml.Unmarshal(yamlFile, &result)return}func Exists(path string) bool {_, err := os.Stat(path) //os.Stat获取文件信息if err != nil {if os.IsExist(err) {return true}return false}return true
}
打包成gojson后校验
GOOS=linux GOARCH=amd64 go build -x -v -ldflags "-s -w" -o gojson main.go
./gojson -f config.json
或者
./gojson -f config.yaml
检查json 或 yaml 文件格式相关推荐
- Python常用配置文件ini、json、yaml读写总结
开发项目时,为了维护一些经常需要变更的数据,比如数据库的连接信息.请求的url.测试数据等,需要将这些数据写入配置文件,将数据和代码分离,只需要修改配置文件的参数,就可以快速完成环境的切换或者测试数据 ...
- Python常用配置文件ini、json、yaml及python字典读写总结
文章目录 1.ini格式 1.1 ini的读取删除操作 1.2 ini 写入操作 2.JSON格式 2.1 JSON示例格式 3. yaml格式 3.1 yaml的语法特点 3.2 yaml示例 3. ...
- yaml文件格式总结
yaml文件格式总结 概念 基本语法 数据类型 YAML 对象 YAML 数组 复合结构 纯量 引用 概念 YAML 是 "YAML Ain't a Markup Language" ...
- yaml 文件格式简介
from: http://www.cnblogs.com/phpgo/p/6480107.html .yaml 文件格式简介 命名 YAML 的意思其实是:"Yet Another Mark ...
- DL之Keras:keras保存网络结构、网络拓扑图、网络模型(json、yaml、h5等)注意事项及代码实现
DL之Keras:keras保存网络结构.网络拓扑图.网络模型(json.yaml.h5等)注意事项及代码实现 目录 keras保存网络结构.网络拓扑图.网络模型(json.yaml.h5等)注意事项 ...
- js前台提示:参数不规范,请检查json的格式和参数对应的类型是否正确
如图: 原来的代码是这样的: 这样的:(相当于导入另外的模块,其中validate.rule.extend.jsp里面存放了对应的提示语) 上面代码限定了文本框里面只能输入1000以内的数字,但是当输 ...
- maven项目集成swagger3生成json和yaml格式的openapi文件
概述 纯maven项目中集成swagger3,项目中根据swagger3API定义规范定义api接口,通过扫描包路径生成json或yaml格式的文件,可供前端展示使用 pom依赖 <?xml v ...
- Java Json和yaml转换
在开发过程中json格式的字符串用的是最多的,但是有时候也会遇到yaml格式的字符串:比如k8s的开发中创建资源的时候都是使用yaml去创建,如果api支持json的字符串创建还好,不能支持json格 ...
- 在线JSON转YAML工具
在线JSON转YAML工具 在线JSON转YAML工具 在线将JSON转换成YAML的工具,支持复制和下载. JSON:(JavaScript Object Notation, JS 对象简谱) 是一 ...
最新文章
- 三维重建【二】————3D reconstruction 较为实用的算法资料整理(传统方式)
- Google 开源的依赖注入库,比 Spring 更小更快!
- 武器化道路越走越远的无人机
- Oracle 不使用DBCA在Oracle 11中删除数据库
- 基于机器学习的捡球机器人设计与实现(探索)第4篇——电机驱动板选择(2019-03-02)
- NYOJ 305 表达式求值
- BASIC-6 杨辉三角形
- numpy基础(part12)--快速傅里叶变换模块
- 开发工具:IDEA EasyCode插件用法(很实用)
- Androd之在图片右上角显示红色圆圈里面数字提醒
- Dataset XML 序列化,什么是序列化
- Hadoop2.x介绍与源代码编译
- PCurve - Curve on Surface
- 【老生谈算法】matlab实现遗传算法源码——遗传算法
- Prescan基础知识总结
- java中数组拼接成字符串中间用逗号隔开
- mysql中文拼音排序
- 区块链编程语言_区块链解决方案开发的编程语言
- 三天全力冲上中科大先研院
- 高一数学知识点复习:命题及其关系、充分条件
热门文章
- 量子计算机验证量子理论,物理学家使用量子计算机验证“时间倒转”
- foxmail for linux 64,ubuntu 通讯工具微信、qq、foxmail、迅雷
- Intermec PM4I 高性能条码打印机 特价促销
- 新型环保材料集成墙板有什么优点?是用什么材料做成的?
- 雷达花火后辈越来越多,鬼哥为什么要选择三度空间?
- Research on IC enterprises
- kera-bert,keras, tensorflow版本对应
- scrapy爬虫实践之抓取拉钩网招聘信息(4)
- U盘识别不了解决方案
- vm16.1安装macOS Big Sur 11.6