配置/etc/docker/daemon.json过程中 .json配置文件书写格式问题

项目场景:

我希望配置/etc/docker/daemon.json 来对docker的拉取源进行设置


问题描述

原有的格式没有加逗号

{
  "registry-mirrors": [
    "https://pee6w651.mirror.aliyuncs.com",
    "https://0dj0t5fb.mirror.aliyuncs.com",
    "https://6kx4zyno.mirror.aliyuncs.com"
  ]
  "dns": ["8.8.8.8", "8.8.4.4"]
}

解决方案:

需要按照格式来写,加上逗号

{
  "registry-mirrors": [
    "https://pee6w651.mirror.aliyuncs.com",
    "https://0dj0t5fb.mirror.aliyuncs.com",
    "https://6kx4zyno.mirror.aliyuncs.com"
  ]"dns": ["8.8.8.8", "8.8.4.4"]
}

最后不要忘记重启docker

sudo systemctl restart docker

贴士

可以使用 jq 工具来验证 JSON 格式

cat /etc/docker/daemon.json | jq .

JSON常识

在书写和使用JSON时,遵循以下规范能够提高其可读性、维护性和兼容性:

1. 基本格式

  • JSON对象必须包含在花括号 {} 中。
  • JSON数组必须包含在方括号 [] 中。
  • 键值对的键和值用冒号 : 分隔。
  • 键名必须用双引号括起来,例如 "key"
  • 值可以是字符串、数字、布尔值、数组、对象或 null

2. 编码规范

  • 字符编码必须是 UTF-8
  • 避免在JSON中直接使用特殊字符,使用Unicode转义表示(如 \uXXXX)。

3. 空白和格式化

  • 使用2个或4个空格缩进(不要使用Tab)。
  • 每个键值对占一行,便于阅读。
  • 在数组中,每个元素建议占一行,特别是数组元素为对象时。

4. 键的规范

  • 键名应使用小写字母,并且用驼峰命名法或下划线分隔。例如:
    • 驼峰:"firstName"
    • 下划线:"first_name"
  • 键名应尽量简洁但具有描述性。

5. 值的规范

  • 字符串值必须用双引号括起来。
  • 数字值不需要引号,可以是整数或浮点数。
  • 布尔值只能为 truefalse
  • 避免使用未定义或自定义数据类型,只使用以下值类型:
    • 字符串("string"
    • 数字(123123.45
    • 布尔值(true / false
    • 数组([]
    • 对象({}
    • 空值(null

6. 注释

  • JSON不支持注释,避免在JSON中直接添加注释。
  • 若需要记录说明,可在文件外部文档或使用特殊键(如 _comment)记录说明,但不推荐。

7. 逗号

  • 最后一个元素后不允许有多余的逗号。例如:
    {
        "name": "John",
        "age": 30
    }
    

8. 示例格式

{
    "user": {
        "id": 12345,
        "name": "Alice",
        "email": "alice@example.com",
        "isActive": true,
        "roles": ["admin", "editor"],
        "profile": {
            "age": 30,
            "city": "New York"
        }
    }
}

9. 校验工具

  • 在生产环境使用前,始终验证JSON格式的正确性。推荐工具:

10. 国际化和可扩展性

  • 如果涉及多语言或版本控制,设计键名时考虑国际化(i18n)或未来扩展,例如添加语言代码前缀或版本号。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值