json 学习资料

JSON-RPC 2.0 Specification (jsonrpc.org)

Google JSON Style Guide

JSON基本概念

1
2
3
4
5
6
释义:
JSON是存储和传递数据的语法,它采用键值对(下文解释)的方式来编写。
优点:
易于人们的阅读和编写,同时也易于机器的解析和生成。
特点:
只要按照JSON的规则,不管什么语言都可以使用JSON的形式,来存储数据。

JSON语法规则

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
实例:
json = {
"sex":"男",
"age":80
}
释义:
"sex":"男"
"sex" : 便是名称,也就是键
"男" : 值
格式

名称/值对的组合中,名称写在前面(且都需要用在双引号中),中间用冒号隔开。

若在一个json对象中,有多个键值对那么每个键值对之间用逗号隔开。

调用
json对象名.名称

json.sex 便可获取到该键值对的值,“男”
1
2
3
4
5
6
7
8
SON值类型

数字(整数或浮点数) : 无需双引号
字符串 : 在引号中
逻辑值 : true 或 false 无需双引号
数组 : [] 无需双引号
对象 : {} 无需双引号
null : 空值 无需双引号
1
2
3
4
5
6
7
8
9
10
11
12
13
实例
jsonone = {
"staff":[
{"name":"小王","age":70},
{"name":"赵五","age":80}
]
}

创建的jsonone对象中有一个键值对,该键值对的值是一个数组,
数组里面有两个json对象.

可以都过如下调用获取小王的年龄
jsonone.staff[0].age

通过 Let's Encrypt 申请 HTTPS证书

文档 - Let’s Encrypt - 免费的SSL/TLS证书 (letsencrypt.org)

1、Certbot 方式:

使用 Certbot (eff.org),先选择 HTTP 服务器和操作系统,我的是运行在 Ubuntu 上的 nginx:

查看是否安装了 snap:

1
snap --version 

没有安装,则:

1
sudo apt install snapd

确保 snapd 更新到最新:

1
sudo snap install core;sudo snap refresh core

安装 Certbot:

1
sudo snap install --classic certbot

添加 certbot 到命令行:

1
sudo ln -s /snap/bin/certbot /usr/bin/certbot

查看设否设置成功:

1
certbot --version

生成证书

首先应配置好站点,准确的说应在 /etc/nginx/sites-available/ 目录下配置站点信息,主要是域名信息, 并软连接到 /etc/nginx/sites-enabled/ 目录下,并重启 nginx, 运行:

1
sudo certbot --nginx

仅生成证书,不修改 Nginx 配置:

1
sudo certbot --nginx certonly

手动输入域名生成证书:

1
sudo certbot certonly --manual

生成的证书有效期 90 天,开启定时任务续订:

1
2
3
4
sudo crontab -u root -e
0 3 1 * * certbot renew --dry-run
#sudo systemctl reload crond
sudo service cron reload

Let’s Encrypt:用免费的 SSL 证书,让网站支持 HTTPS - 宁皓网 (ninghao.net)

2、acme.sh 方式

How to issue a cert · acmesh-official/acme.sh Wiki (github.com)

申请Let’s Encrypt通配符HTTPS证书 - 飞奔的萝卜 - OSCHINA - 中文开源技术交流社区