我的编程空间,编程开发者的网络收藏夹
学习永远不晚

如何在golang中读写json数据

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何在golang中读写json数据

这篇文章给大家介绍如何在golang中读写json数据,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

什么是golang

golang 是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言,其语法与 C语言相近,但并不包括如枚举、异常处理、继承、泛型、断言、虚函数等功能。

首先,定义结构体:

type Com struct {                                                                                                                                                                  Name string        Nodes []string}

读取操作(从文件中读取json数组到结构体数组中):

func load(fname string) {        var cs []Com = make([]Com, 0)        fp, err := os.Open(fname)        if err != nil {                panic(err)        }              defer fp.Close()        bytes, err := ioutil.ReadAll(fp)        if err != nil {                panic(err)        }              err = json.Unmarshal(bytes, &cs)        if err != nil {                panic(err)        }        //使用cs        ...       }

写出操作(将结构体数组转换为json数组并写入文件):

func dump(fname string) {        fp, err := os.Create(fname)        if err != nil {                panic(err)        }          defer fp.Close()        cs := []Com{}        cs = append(cs, Com{"1", []string{"1.1", "2.2"}})        cs = append(cs, Com{"2", []string{"2.2", "3.2"}})        cs = append(cs, Com{"3", []string{"3.4", "4.5"}})        data, err := json.Marshal(cs)        if err != nil {                panic(err)        }          n, err := fp.Write(data)        if err != nil {                panic(err)        }  }

补充:go 读取 json 配置文件

引言

go 读取 json 配置文件,主要有两个知识点:一是文件的读取,二是 json 数据的处理。

序列化与反序列化

对 json 数据的处理往往指的是数据的序列化和反序列化。

把变量从内存中变成可存储或传输的过程称之为序列化,序列化之后,就可以把序列化后的内容写入到磁盘,或者通过网络传输到别的机器上。反过来,把变量内容从序列化的对象重新读到内存里称之为反序列化。

go 有内置对 json 数据的处理包 “encoding/json”。

序列化为 json 格式:

data, err := json.Marshal(infos)

反序列化 json 数据:

err := json.Unmarshal(str, &info)

文件读取

配置文件的读取

config.json

{  "userName":"root",  "password":"",  "host":"localhost",  "port":"3306",  "dbName": "test",  "tableName":"table"}

config.go

package mainimport ( "encoding/json" "fmt" "sync" io "io/ioutil")//定义配置文件解析后的结构type UserInfo struct { UserName  string `json:userName` Password  string `json:password` Host      string `json:host` Port     string `json:port` DbName    string `json:dbName` TableName string `json:tableName`}var UserIn UserInfovar file_locker sync.Mutex //config file lockerfunc InitConfig() bool { conf, bl := LoadConfig("./config.json") //get config struct if !bl {  fmt.Println("InitConfig failed")  return false } UserIn = conf return true}func LoadConfig(filename string) (UserInfo, bool) { var conf UserInfo file_locker.Lock() data, err := io.ReadFile(filename) //read config file file_locker.Unlock() if err != nil {  fmt.Println("read json file error")  return conf, false } datajson := []byte(data) err = json.Unmarshal(datajson, &conf) if err != nil {  fmt.Println("unmarshal json file error")  return conf, false } return conf, true}func main() { bl := InitConfig() if !bl {  fmt.Println("init config failed")  return }}

关于如何在golang中读写json数据就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

如何在golang中读写json数据

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何在golang中读写json数据

这篇文章给大家介绍如何在golang中读写json数据,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。什么是golanggolang 是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言,其语
2023-06-14

Python如何读写JSON格式数据

这篇文章主要介绍了Python如何读写JSON格式数据,JSON文件的读写应算成Python基础知识的内容,在编写Nonebot插件时,常常会操作JSON类型的数据,需要的朋友可以参考下
2023-05-15

Golang中怎么读写Channel数据

本文小编为大家详细介绍“Golang中怎么读写Channel数据”,内容详细,步骤清晰,细节处理妥当,希望这篇“Golang中怎么读写Channel数据”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。Channel
2023-07-04

如何编写 Golang 文件读写函数?

go 语言通过 i/o 库高效进行文件读写。要读文件,使用 readfile 返回字节数组;写文件则使用 writefile 写入字节数组。此外,go 还支持其他 i/o 操作,如:打开文件、关闭文件、读取文件信息和创建目录。如何编写 Go
如何编写 Golang 文件读写函数?
2024-05-15

如何从json文件中读取数据

你可以使用Python的`json`模块来读取JSON文件。下面是一个简单的示例代码:```pythonimport json# 打开JSON文件with open('data.json') as file:# 使用json.load()方
2023-09-13

如何在 golang 中重写函数?

在 go 中,方法重写允许在派生类中重新定义基类中的方法,同时保持相同的方法签名:使用 override 关键字。重写方法必须与基方法具有相同的签名。重写方法的接收者类型必须是基类型的子类型。在 Go 中重写函数重写允许我们在派生类中定义
如何在 golang 中重写函数?
2024-04-27

如何在 Golang 中处理文件读写错误?

在 go 中处理文件读写错误的关键步骤如下:使用 os.open 打开文件,并将错误分配给 err 变量。检查 err 是否非空以检测错误。使用多种方法处理错误,例如打印、记录或使用 errors 包的内置类型。在实战案例中,readfil
如何在 Golang 中处理文件读写错误?
2024-05-15

如何在 Golang 中从流中读取或写入文件?

在 go 中,可以使用 io 包从流中读取或写入文件:从流中读取文件:创建一个缓冲读取器。使用 readstring 或 readbytes 方法逐行读取文件。向流中写入文件:使用writestring或writebytes函数向文件写入。
如何在 Golang 中从流中读取或写入文件?
2024-05-15

如何在 Golang 中并发读取和写入文件?

并发读取文件:创建 goroutine 并发读取数据块,使用管道通信协调;并发写入文件:使用 goroutine 写入数据,用互斥锁保护写入操作。如何在 Golang 中并发读取和写入文件?并发处理文件 I/O 是提升 Golang 程序
如何在 Golang 中并发读取和写入文件?
2024-05-15

golang中如何将数据转为json格式

本文小编为大家详细介绍“golang中如何将数据转为json格式”,内容详细,步骤清晰,细节处理妥当,希望这篇“golang中如何将数据转为json格式”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。使用 Gola
2023-07-05

如何正确解析 Golang 中的 JSON 数据?

在 golang 中解析 json 数据可通过以下步骤:使用 encoding/json 包。使用 json.marshal() 转换数据结构为 json 字节切片。使用 json.unmarshal() 解析 json 数据。如何在 Go
如何正确解析 Golang 中的 JSON 数据?
2024-05-14

jmeter如何读取json重复数据

要在JMeter中读取重复的JSON数据,您可以使用以下步骤:1. 添加一个HTTP请求,用于获取返回的JSON数据。2. 添加一个正则表达式提取器(Regular Expression Extractor)作为HTTP请求的子元件。3.
2023-09-15

如何在php中解析json数据

如何在php中解析json数据?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。php的框架有哪些php的框架:1、Laravel,Laravel是一款免费并且开源
2023-06-14

如何在 Golang 中使用管道实现文件读写?

通过管道进行文件读写:创建一个管道从文件读取数据并通过管道传递从管道中接收数据并处理将处理后的数据写入文件使用 goroutine 并发执行这些操作以提高性能如何在 Golang 中使用管道实现文件读写?管道在 Go 中是一种有用的并发原
如何在 Golang 中使用管道实现文件读写?
2024-05-15

如何在 Golang 中单元测试文件读写功能?

在 golang 中单元测试文件读写功能,可以使用 testing 包。具体步骤如下:创建一个函数从文件中读取文本并存储在字符串变量中。使用 t.run() 运行每个子测试。使用 os.readfile() 读取文件内容并与被测函数的输出进
如何在 Golang 中单元测试文件读写功能?
2024-05-15

go语言中json数据的读取和写出操作

go自带json库,在使用时需要通过 import "encoding/json"来导入该库。 在读取和写入json数据之前需要定义相关的结构体来对应被操作的json数据的格式,并且结构体中需要导出或导入的变量首字母大写。 其中,json.
2022-06-07

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录