【REST2SQL】03 GO读取JSON文件

REST2SQL需要一些配置信息,用JSON文件保存,比如config.json

在这里插入图片描述

1 创建config.json配置文件

{"hostPort":"localhost:5217","connString":"oracle://blma:5217@127.0.0.1:1521/CQYH","_oracle":"oracle://blma:5217@127.0.0.1:1521/CQYH","_mysql":"mysql://","_mssql":"mssql://","_postgresql":"postgresql://","REST":"GET,POST,PUT,DELETE", "_REST":"GET,POST,PUT,DELETE", "SQL":"SELECT","_SQL":"SELECT,INSERT,UPDATE,DELETE"}

其中_下划线开头的作为注释项。

2 创建一个Gojson的控制台程序

2.1 引入json和ioutil包

import ("encoding/json""fmt""io/ioutil"
)

2.2 创建配置项结构体

// 配置结构体
type Config struct {DBType     string //数据库类型 :oracle、mysql等ConnString string `json:"connString"`HostPort   string `json:"hostPort"`REST       string `json:"REST"`SQL        string `json:"SQL"`
}

反引号包裹的为json文件的键。
5个键分别为数据库类型,数据库连接字符串,http主机和端口,REST可用方法,SQL可用语句。

2.3 主控main()函数

func main() {fmt.Println("Go Read JSON")bytes, err := ioutil.ReadFile("config.json")if err != nil {fmt.Println("读取json文件失败", err)return}conf := &Config{}err = json.Unmarshal(bytes, conf)if err != nil {fmt.Println("json解析失败", err)return}fmt.Println(conf)fmt.Println("DBType:", conf.DBType)fmt.Println("connString:", conf.ConnString)fmt.Println("hostPort:", conf.HostPort)fmt.Println("REST:", conf.REST)fmt.Println("SQL:", conf.SQL)
}

3 go读取json全部代码

// gojson project main.go
// go 读取 Json 文件测试
package mainimport ("encoding/json""fmt""io/ioutil"
)// 配置结构体
type Config struct {DBType     string //数据库类型 :oracle、mysql等ConnString string `json:"connString"`HostPort   string `json:"hostPort"`REST       string `json:"REST"`SQL        string `json:"SQL"`
}func main() {fmt.Println("Go Read JSON")bytes, err := ioutil.ReadFile("config.json")if err != nil {fmt.Println("读取json文件失败", err)return}conf := &Config{}err = json.Unmarshal(bytes, conf)if err != nil {fmt.Println("json解析失败", err)return}fmt.Println(conf)fmt.Println("DBType:", conf.DBType)fmt.Println("connString:", conf.ConnString)fmt.Println("hostPort:", conf.HostPort)fmt.Println("REST:", conf.REST)fmt.Println("SQL:", conf.SQL)
}

4 执行结果

Go Read JSON
&{ oracle://blma:5217@127.0.0.1:1521/CQYH localhost:5217 GET,POST,PUT,DELETE SELECT}
DBType:
connString: oracle://blma:5217@127.0.0.1:1521/CQYH
hostPort: localhost:5217
REST: GET,POST,PUT,DELETE
SQL: SELECT

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/318864.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【JUC】Synchronized及JVM底层原理

Synchronized使用方式 Synchronized有三种应用方式 作用于实例方法,当前示实例加锁进入同步代码前要获得当前实例的锁,即synchronized普通同步方法,调用指令将会检查方法的ACC_SYNCHRONIZED访问标志是否被设置。 如果设置了,执行…

pytest-yaml 测试平台-4.生成allure报告,报告反馈企业微信、钉钉、飞书通知

前言 定时任务执行完成后生成可视化allure报告,并把结果发到企业微信,钉钉,飞书通知群里。 生成allure报告 添加定时任务 执行完成后生成allure报告 查看报告详情 报告会显示详细的request 和 response 详细信息 也可以查看log日志 …

Navicat for Mysql怎么执行创建表的脚本

Navicat for Mysql怎么执行创建表的脚本 Navicat 怎么执行sql文件 Navicat 执行创建表语句 Navicat 执行sql语句 Navicat 怎么创建表语句 1、打开Navicat数据库管理工具; 2、点击菜单栏上的“工具”,选择“命令列界面”; 打开了命令列界面…

智能分析网关V4智慧港口码头可视化视频智能监管方案

一、需求背景 近年来,水利港口码头正在进行智能化建设,现场管理已经是重中之重。港口作为货物、集装箱堆放及中转机构,具有昼夜不歇、天气多变、环境恶劣等特性,安全保卫工作显得更加重要。港口码头的巡检现场如何高效、快捷地对…

学习Vue 01 欢迎来到Vue的世界

学习Vue 01 欢迎来到Vue的世界 概述 Initially released in 2014, Vue.js has experienced rapid adoption, especially in 2018. Vue is a popular framework within the developer community, thanks to its ease of use and flexibility. If you are looking for a great …

2020年认证杯SPSSPRO杯数学建模D题(第一阶段)让电脑桌面飞起来全过程文档及程序

2020年认证杯SPSSPRO杯数学建模 D题 让电脑桌面飞起来 原题再现: 对于一些必须每天使用电脑工作的白领来说,电脑桌面有着非常特殊的意义,通常一些频繁使用或者比较重要的图标会一直保留在桌面上,但是随着时间的推移,…

计算机创新协会冬令营——暴力枚举题目02

再次欢迎大家参加此次的冬令营,我们协会欢迎所有志同道合的同学们。话不多说,先来看看今天的题目吧。♪(^∇^*) 题目 力扣题号:2367. 算术三元组的数目 注:下述题目和示例均来自力扣 题目 给你一个下标从 0 开始、严格递增 的整…

Winform中使用Websocket4Net实现Websocket客户端并定时存储接收数据到SQLite中

场景 SpringBootVue整合WebSocket实现前后端消息推送: SpringBootVue整合WebSocket实现前后端消息推送_websocket vue3.0 springboot 往客户端推送-CSDN博客 上面实现ws推送数据流程后,需要在windows上使用ws客户端定时记录收到的数据到文件中&#x…

C/C++动态内存分配 malloc、new、vector(简单讲述)

路虽远,行则将至 事虽难,做则必成 今天来主要讲C中动态内存分配 其中会穿插一些C的内容以及两者的比较 如果对C语言中的动态内存分配还不够理解的同学 可以看看我之前的博客:C语言动态分配 在讲解C的动态内存分配之前 我们先讲一下C内存模型 &#xff1…

利用深度学习图像识别技术实现教室人数识别

引言 在现代教育环境中,高效管理和监控教室成为了一个重要议题。随着人工智能技术的迅猛发展,特别是深度学习和图像识别领域的突破,我们现在可以通过智能系统来自动识别教室内的人数,从而实现更加智能化的教室管理。 深度学习与图…

简易机器学习笔记(七)计算机视觉基础 - 常用卷积核和简单的图片的处理

前言 这里实际上涉及到了挺多有关有关理论的东西,可以详细看一下paddle的官方文档。不过我这里不过多的谈有关理论的东西。 【低层视觉】低层视觉中常见的卷积核汇总 图像处理中常用的卷积核 在代码中,我们实际上是用不同的卷积核来造成不同的影响&a…

普中STM32-PZ6806L开发板(资料收集...)

简介 逐渐收集一些开发过程中使用到的文档资料数据手册 DS18B20 数据手册 DS18B20 Datasheet 开发文档 STM32F1各种文档 https://www.st.com/en/embedded-software/stm32cubef1.html#documentation HAL库文档开发文档 你使用的HAL文档, 在STM32CubeMX生成过程的最下面有…