主思路

go语言里读写json,可以使用 encoding/json ,简单或可变的结构就用 map[string]interface{},复杂的就定义所有的 struct

详情

导入包

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

先读出文件,变成byte[]

    var data, _ = ioutil.ReadFile(jsonFile)

定义好一个通用结构 ConfigData,如果json结构不变可以详细地定义

type ConfigData map[string]interface{}

从data转成ConfigData

    var scriptConfig ScriptConfigvar err = json.Unmarshal(data, &scriptConfig)if err != nil {log.Printf("error: \n", err)// errorlog.Fatal("process json file failed")return}

通用结构其实就是一个map,在使用的时候要用字符串来引用属性,比如scriptConfig['notes']。如果是固定结构struct(可以嵌套),那么可以详细地定义好结构,这样在编译阶段就可以检查属性名字是否正确。

例如这样的复杂结构

type SizeInfo struct {W int `json:"w"`H int `json:"h"`
}type Material struct {Source         string         `json:"source"`Filter         string         `json:"filter"`
}type ScriptConfig struct {Notes              string              `json:"notes"`TargetDir          string              `json:"targetDir"`MaterialDir        string              `json:"materialDir"`Size               SizeInfo            `json:"size"`Materials          map[string]Material `json:"materials"`
}

这样在编译的时候就会检查名字是否正确,提前避免一些typo的问题。

参考

官方 json package - encoding/json - pkg.go.dev

go语言里读写json相关推荐

  1. C语言 文件读写 fputs 函数 - C语言零基础入门教程

    目录 一.fgets 函数简介 二.fgets 函数使用 三.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门 一.fgets 函数简介 fge ...

  2. C语言 文件读写 fputc 函数 - C语言零基础入门教程

    目录 一.fputc 函数简介 二.fputc 函数使用 三.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门 一.fputc 函数简介 fpu ...

  3. C语言 文件读写 fseek 函数 - C语言零基础入门教程

    目录 一.fseek 函数简介 二.fseek 函数实战 三.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门 一.fseek 函数简介 fse ...

  4. C语言 文件读写 EOF - C语言零基础入门教程

    目录 一.EOF 简介 二.EOF 实战 三.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门 一.EOF 简介 EOF 是 End Of Fi ...

  5. C语言 文件读写 ferror 函数 - C语言零基础入门教程

    目录 一.ferror 函数简介 二.ferror 函数实战 三.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门 一.ferror 函数简介 ...

  6. python 读写 json文件

    json的优势: 1. 数据体积方面. JSON相对于XML来讲,数据的体积小,传递的速度更快些. 2. 传输速度方面. JSON的速度要远远快于XML 3. 数据格式 数据格式比较简单, 易于读写, ...

  7. Unity实用小工具或脚本——读写Json工具

    一.前言       在Unity中读写Json文件已经有非常好的工具,可以将Json文件和结构体数据进行相互转换,如图1所示,在Unity Asset Store中搜JSON.NET可以找到该插件, ...

  8. java读写json格式的文件方法详解.txt,并批量存储进redis

    捐躯赴国难,视死忽如归.恸哭六军俱缟素,冲冠一怒为红颜.君子坦荡荡,小人长戚戚.风日晴和人意好,夕阳箫鼓几船归.民为贵,社稷次之,君为轻.Java 读写json格式的文件方法详解 文章录入:7747. ...

  9. Qt读写JSON,以及使用QTreeView展示和编辑JSON数据

    0.前言 JSON(JavaScript Object Notation)是一种轻量级的结构化数据格式,相对于XML语法更简洁.它具有6种基本数据类型:bool(true或false字符串表示).do ...

最新文章

  1. 三星s5能升级到android7.0,三星手机Android 7.0升级的最新列表: Galaxy S5,未注意Note 4...
  2. ACM入门之【KMP】
  3. bzoj 1997: [Hnoi2010]Planar
  4. 园区交换网络和路由网络综合设计,测试完工啦
  5. Linux删除重复内容命令uniq笔记
  6. vue element-ui 无法渲染表格数据解决
  7. Android面试基础一
  8. shellcode编写
  9. 传高盛与德劭前合伙人组5亿美元私募基金
  10. 【ZJCPC2018 第15届 浙江省赛】The 15th Zhejiang Provincial Collegiate Programming Contest(MABLJK 6题)
  11. 反射学习系列1-反射入门
  12. SpringCloud学习之Hystrix
  13. java demo类_《java语言程序设计》初步学习——各种小Demo
  14. 【14年浙江省赛 ZOJ 3780】Paint the Grid Again【图转换】
  15. 【Opencv】图像分割——区域生长
  16. 推荐系统的PMF - 概率矩阵分解和协同过滤
  17. 《传奇之王》风波不断 编剧替柳云龙打抱不平_0
  18. Excel神器之xlwings的安装
  19. Word明明有很大空白表格还是自动换页
  20. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

热门文章

  1. Verilog初级教程(4)Verilog中的标量与向量
  2. java制作vpk系统_FWReinstaller3.60重刷系统VPK分享
  3. 主成分分析(principal component analysis, PCA)公式
  4. Python CSV Reader/Writer
  5. 【Python】均值回归策略回测(日内高频数据)
  6. 网络:access和trunk端口和hybird端口的区别
  7. css文字中间省略号使用js实现
  8. Python基于PC版微信实现机器人
  9. Excel数字格式转换方法
  10. 五千字长文为你揭秘滴滴共享出行派单算法原理(干货)