一:理解概念(Json和Yaml)
HTTP基础
HTTP(Hypertext Transfer Protocol)是用于在Web上进行数据通信的协议
-
请求(Request):客户端(通常是浏览器)向服务器发送请求。请求包括以下内容:
- 请求行:包括HTTP方法(如GET、POST)、请求URL和HTTP版本。
- 请求头(Headers):包含请求的元数据,如User-Agent、Accept、Content-Type等。
- 请求体(Body):在POST或PUT请求中包含数据,如表单数据或JSON。
-
响应(Response):服务器处理请求后返回的响应。响应包括以下内容:
- 状态行:包括HTTP版本、状态码(如200、404)和状态描述。
- 响应头(Headers):包含响应的元数据,如Content-Type、Content-Length等。
- 响应体(Body):包含实际的数据,如HTML、JSON等。
HTTP方法
- GET:请求资源,不改变服务器状态。
例如我们通常进行的http访问都是基于GET请求,**请求头中包含可以包含请求数据,请求体中不可以包含数据,包含数据大小为1024字节 - POST:向服务器提交数据,通常用于表单提交。
例如我们通常网页上登录功能,提交的用户名和密码就是以表单或者文件形式提交到服务器的,在认证后方可返回网络资源,**数据包含在请求体中,没有上限**,另外POST请求可能会导致**新的资源的建立**或**已有资源的修改(可以反复提交)**; - PUT:更新资源。
向指定资源位置上传其最新内容,**同一个位置PUT请求只能存在一次**,再次操作会报错(执行需要权限); - DELETE:删除资源。
请求服务器删除Request-URL所标识的资源(执行需要权限)。 - HEAD:常用测试网站健康状况的命令,服务器**只返回响应头,不会返回响应体(响应体中可能包含大量的数据)**;
GET和POST的区别
JSON特点:
- 简单易读:结构化数据格式,常用于Web API。
- 数据类型支持:包括字符串、数字、数组、对象、布尔值和null。
- 广泛支持:几乎所有编程语言和框架都支持。
YAML特点:
- 易读性好:比JSON更简洁,注重人类可读性。
- 数据类型支持:与JSON类似,支持字符串、数字、列表、字典、布尔值和null。
- 缩进敏感:使用缩进表示层级关系,类似Python。
二:下载文件转换工具
Yq命令安装:
wget https:
//github
.com
/mikefarah/yq/releases/download/v4
.16.2
/yq_linux_amd64
\
&&
chmod
+x yq_linux_amd64 \
&&
mv
yq_linux_amd64
/usr/local/bin/yq
三:工具的使用方式
先写两个文件,一个Yaml文件和一个Json文件
例如:
Yaml文件
#一个YAML案例,用缩进代表层级关系,用#做注释
name: "蔡徐坤"
age: 20
personalInfo:
hobby: "唱跳rap篮球"
oral: "你干嘛~~~哎哟~~"
Json文件
json
//一个JSON案例,必须全部用花括号包起来,用//做注释
{
"name":"蔡徐坤",
"age":20,
"personalInfo":{
"hobby":"唱跳rap篮球",
"oral":"你干嘛~~~哎哟~~"}
}
写完文件,使用yq方法
yq命令的使用
yaml转换为json
yq
eval
-o json cxk.yaml |
tee
cxk.json
json转换为yaml
yq
eval
-P cxk.json |
tee
cxk.yml