.yml文件
.yml 文件是 YAML(YAML Ain’t Markup Language)格式的一种文件扩展名。YAML 是一种用于数据序列化的语言,通常用于配置文件、数据交换、日志记录等场景。它以可读性高、简洁的格式为特点,非常适合用于人类阅读和编写。YAML 通常被用于配置文件(例如,Docker 配置、CI/CD 配置等),因为它的结构清晰且易于编辑。
YAML 文件的一些特点:
层次结构:通过缩进来表示数据的层级结构,通常使用两个空格(或四个空格)来表示一个层级。不会使用花括号 {} 或方括号 [] 来表示层次。
键值对:使用 key: value 来表示数据项,key 是数据的名称,value 是对应的值。:冒号后面必须有一个空格
数组:通过 - 来表示一个数组项。
注释:使用 # 来添加注释,注释不会被解析。
支持多种数据类型:支持字符串、整数、浮点数、布尔值、日期等数据类型。
# 这是一个YAML文件的示例
#键值对
name: John Doe
age: 30
is_active: true
address:#嵌套对象,里面是三个键值对
street: 123 Main St
city: Anytown
country: USA
friends:#数组friends 里面有3个元素
- Jane
- Bob
- Alice
.json文件
JSON 文件格式(JavaScript Object Notation)
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,具有 键值对结构、可读性强、易解析、跨语言支持 的特点,广泛用于 Web 开发、API 交互、配置文件等。
比XML更小、更快、更易解析。
- JSON 的基本格式
JSON 由 对象(Object) 和 数组(Array) 组成:
对象(Object):使用 大括号 {},包含 key: value 键值对。
数组(Array):使用 方括号 [],包含多个值。
{
"name": "Alice",
"age": 25,
"isStudent": false,
"skills": ["JavaScript", "Python", "C++"],
"address": {
"city": "New York",
"zip": "10001"
}
}
- 特点:
字符串 必须用 双引号 "(不能用单引号 ')。
JSON中不能注释
JSON本质是一个字符串,将其通过JS解析后转换成JS对象或数组。
键(Key) 必须是 字符串,不能省略引号。
值(Value) 可以是 字符串、数字、布尔值、对象、数组、null【6种】。
数字 “age”: 25 不能有前导 0,如 012 ❌
数组 “skills”: [“JS”, “Python”] 可包含多种数据类型
对象 “address”: {“city”: “NY”} 可嵌套 - JSON 字符串转 JavaScript 对象【反序列化】
const jsonString = '{"name": "Alice", "age": 25}';
const obj = JSON.parse(jsonString);
console.log(obj.name); // 输出: Alice
//JSON.parse()还可以接收一个函数,用来转换解析出的属性:
var obj = JSON.parse('{"name":"小明","age":14}', function (key, value) {
if (key === 'name') {
return value + '同学';
}
return value;
});
- JavaScript 对象转 JSON 字符串【序列化】
JSON.stringify(value[, replacer [, space]])
const obj = { name: "Alice", age: 25 };
const jsonString = JSON.stringify(obj);
console.log(jsonString); // 输出: '{"name":"Alice","age":25}'
//要输出得好看一些,可以加上参数,按缩进输出
JSON.stringify(xiaoming, null, ' ');
//第二个参数用于控制如何筛选对象的键值,如果我们只想输出指定的属性,可以传入Array:
JSON.stringify(xiaoming, ['name', 'skills'], ' ');
//还可以传入一个函数,这样对象的每个键值对都会被函数先处理:
function convert(key, value) {
if (typeof value === 'string') {
return value.toUpperCase();
}
return value;
}
JSON.stringify(xiaoming, convert, ' ');