- 今天解锁新技能 —— 配置文件解析!配置文件就像是程序运行的 “工具包”,里面藏着各种参数和设置,而 JSON 和 INI 是最常见的两种 “密码格式”,学会读它们就能看懂程序的 “小心思”。
一、JSON文件解析
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,听说它很容易让人读懂和编写,机器也能轻松解析和生成。在aardio里,我们可以用json
模块来解析JSON文件。
示例1:解析简单的JSON字符串
import web.json;
import console;
var jsonStr = '{"name": "张三", "age": 20}';
var data = web.json.parse(jsonStr);
console.log(data.name);
console.log(data.age);
console.pause();
运行这段代码,控制台输出了“张三”和“20”。
示例2:解析JSON文件
import web.json;
import console;
var fileContent = io.file("D:\tools\aardio\project\demo\config.json");
var line = fileContent.readAll();
var config = web.json.parse(line);
console.log(config.host);
console.log(config.port);
console.pause();
假设config.json
文件内容是这样的:
{
"host": "127.0.0.1",
"port": 8080
}
这里我们先读取了JSON文件的内容,然后把它解析成了一个aardio的表,通过表的键就能访问对应的值啦。
二、INI文件解析
INI文件也是一种常见的配置文件格式,通常用来存储程序的配置信息。在aardio里,我们用ini
模块来解析INI文件。
示例1:解析简单的INI文件
import fsys.ini;
import console;
var iniData = fsys.ini("D:\tools\aardio\project\demo\config.ini");
console.log(iniData.read("Section1","key1"));
console.log(iniData.read("Section2","key2"));
console.pause();
假设config.ini
文件内容是这样的:
[Section1]
key1 = value1
[Section2]
key2 = value2
运行这段代码,就能通过表的键访问到对应的值啦,感觉INI文件也不难理解嘛。
示例2:修改INI文件并保存
import fsys.ini;
import console;
var iniData = fsys.ini("D:\tools\aardio\project\demo\config.ini");
var first = iniData.read("Section1","key1");
newiniData = iniData.write("Section1","key1","newvalue")
var iniData = fsys.ini("D:\tools\aardio\project\demo\config.ini");
var second = iniData.read("Section1","key1");
if(first !== second){
console.log("修改成功")
}else {
console.log("对不起。修改失败")
}
console.pause();
这里我们先读取了INI文件,然后修改了配置信息,最后把修改后的信息保存到文件里,就像给程序的“说明书”做了一点小更新一样。
三、综合习题
假设我们有一个JSON文件user_info.json
,内容是这样的:
{
"user": {
"name": "李四",
"age": 25,
"address": {
"city": "北京",
"street": "长安街"
}
}
}
同时还有一个INI文件settings.ini
,内容是这样的:
[General]
theme = dark
font_size = 12
[Network]
server = example.com
port = 80
要编写一个aardio程序,读取这两个文件的配置信息,并输出用户的姓名、所在城市、主题和服务器地址。
我的答案是这样的:
import web.json;
import fsys.ini;
import console;
var jsonContent = io.file("D:\tools\aardio\project\demo\user_info.json");
var line = jsonContent.readAll();
var userData = web.json.parse(line);
var iniData = fsys.ini("D:\tools\aardio\project\demo\settings.ini");
console.log("姓名:", userData.user.name);
console.log("所在城市:", userData.user.address.city);
console.log("主题:", iniData.read("General","theme"));
console.log("服务器地址:", iniData.read("Network","server"));
console.pause();
运行这个程序,就能输出我们需要的信息啦!
四、学习小结
今天学习了JSON和INI文件的解析方法,感觉收获满满!总结一下:
- JSON文件解析:可以用
json
模块的parse
函数将JSON字符串或文件内容解析为aardio的表,然后通过表的键来访问对应的值。 - INI文件解析:用
ini
模块的ini
函数读取INI文件,将其解析为一个嵌套的表,同样通过表的键来访问对应的值,还可以用write
函数修改配置信息并保存。