当前位置: 首页> 汽车> 车展 > 配置文件格式 JSON 快速上手

配置文件格式 JSON 快速上手

时间:2025/7/11 17:53:24来源:https://blog.csdn.net/K346K346/article/details/140575662 浏览次数: 0次

文章目录

  • 1.语法
  • 2.实例
  • 3.解析
  • 参考文献

JSON(JavaScript Object Notation) 是轻量级的文本数据交换格式,独立于语言,具有自我描述性。JSON 类似于 XML,但比 XML 更小、更快,更易解析。

1.语法

JSON 语法是 JavaScript 对象表示法语法的子集。

  • 数据在名称/值对中
  • 数据由逗号分隔
  • 花括号保存对象
  • 方括号保存数组

名称/值对包括字段名称(在双引号中),后面写一个冒号,然后是值:

"firstName" : "John"

一个合法的 JSON 可以是:

  • 数字(整数或浮点数)
  • 字符串(在双引号中)
  • 布尔(true 或 false)
  • 数组(在方括号中)
  • 对象(在花括号中)
  • null

JSON 对象在花括号中书写,对象可以包含多个名称/值对,使用逗号分隔:

{ "firstName":"John" , "lastName":"Doe" }

JSON 数组在方括号中书写,数组可包含多个对象:

{
"employees": [{ "firstName":"John" , "lastName":"Doe" },{ "firstName":"Anna" , "lastName":"Smith" },{ "firstName":"Peter" , "lastName":"Jones" }
]
}

2.实例

下面以 JSON 表示一个简单的后台服务配置:

{"-name": "UserProfileServer","maxconns": "1000","queuecap": "10000","queuetimeout": "300","loginfo": {"loglevel": "ERROR","logsize": "10M","lognum": "10","logpath": "/usr/local/app/log"}
}

其中 -name 表示服务的名称,前面一个横杠表示该值可以转换为 XML 的标签属性。其它的键值对表示服务的各个配置项。

3.解析

下面以 Go 为例,利用 Go 自带的 JSON 包 encoding/json 完成对上面服务配置的解析。

第一步,将 JSON 串转换为 Go struct。把上面的 JSON 串粘贴到 Convert JSON to Go struct。

type Server  struct {Name         string `json:"-name"`Maxconns     string `json:"maxconns"`Queuecap     string `json:"queuecap"`Queuetimeout string `json:"queuetimeout"`Loginfo      struct {Loglevel string `json:"loglevel"`Logsize  string `json:"logsize"`Lognum   string `json:"lognum"`Logpath  string `json:"logpath"`} `json:"loginfo"`
}

第二步,利用 Go 自带的 JSON 包 encoding/json 解析上面以 JSON 串表示的配置信息。

package mainimport("encoding/json""io/ioutil""fmt""os"
)func main() {file, err := os.Open("server.json")if err != nil {fmt.Printf("error:%v\n", err)return}defer file.Close()data, err := ioutil.ReadAll(file)if err != nil {fmt.Printf("error: %v", err)return}v := Server{}err = json.Unmarshal(data, &v)if err != nil {fmt.Printf("error:%v\n", err)return}fmt.Printf("%+v\n", v)
}

运行输出:

{Name:UserProfileServer Maxconns:1000 Queuecap:10000 Queuetimeout:300 Loginfo:{Loglevel:ERROR Logsize:10M Lognum:10 Logpath:/usr/local/app/log}}

参考文献

JSON
Golang: Convert JSON to Struct
Go Package json

关键字:配置文件格式 JSON 快速上手

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: