1 配置管理
正常的应用程序在启动时通常需要从配置文件中恢复配置数据。这些配置文件的格式有很多种,如 INI
、XML
、JSON
等。在本文中,我们将重点介绍 JSON 格式,它是一种轻量级的数据交换格式。
1.1 JSON 格式
JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写,也易于机器解析和生成。它主要用于在服务器和 Web 应用之间传递数据,但也广泛应用于存储配置文件、数据库的数据交换等场景。
1.1.1 JSON 格式基本规则
- 数据由键值对组成:每个键(key)都是一个字符串,后面跟着一个冒号
:
和对应的值(value)。 - 键值对之间用逗号分隔。
- 键必须是字符串,而值可以是:
- 字符串(必须用双引号
""
包裹) - 数字(整数或浮动)
- 布尔值(
true
或false
) - 数组(由方括号
[]
包裹) - 对象(由花括号
{}
包裹) null
- 字符串(必须用双引号
- 对象和数组可以嵌套:JSON 允许对象和数组互相嵌套,方便表示复杂的数据结构。
1.1.2 JSON 格式示例
以下是一个配置文件的 JSON 格式示例,该配置文件保存了一些系统设置,如串口波特率、杠杆臂参数、NTRIP 配置等。
{
"com_baudrate": {
"com1": "9600",
"com2": "115200",
"com3": "4800"
},
"lever_arm_gps": {
"x": "0.1",
"y": "0.2",
"z": "0.3"
},
"lever_arm_lcp": {
"x": "0.4",
"y": "0.5",
"z": "0.6"
},
"ntrip": {
"ip": "192.168.1.1",
"port": "2101",
"username": "user",
"password": "password",
"mount_point": "mountpoint"
},
"output": {
"GPFPD_BIN": true,
"GTIMU_BIN": false,
"TEST_BIN_1": true
},
"storage_path": "/path/to/storage",
"decimal": "2"
}
1.1.3 python中JSON 解析和生成
在python中,可以使用 json
模块来解析和生成 JSON 格式的数据。
这里是存储json的代码,key-value形式存储到文件中,可以当做是C语言中的数组或者是结构体。
import json
def save_config_to_file(self):
"""保存配置到 JSON 文件"""
con