找回密码
 立即注册

微信登录

只需一步,快速开始

QQ登录

只需一步,快速开始

查看: 43|回复: 0

[心得] aardio Json和INI文件解析

[复制链接]
  • TA的每日心情
    开心
    前天 09:02
  • 签到天数: 51 天

    连续签到: 5 天

    [LV.5]常住居民I

    28

    主题

    56

    回帖

    714

    积分

    高级会员

    积分
    714
    来自: 中国贵州贵阳
    发表于 2025-5-23 13:16:25 | 显示全部楼层 |阅读模式 来自: 中国贵州贵阳
    非业余 - aardio 编程语言 - 非官方问答社区
    风行者三期培训:Aardio+Python+Flutter,1000集课程让你成为全栈开发高手!https://mp.weixin.qq.com/s/_WOoHFtITUyLk2k7BXYGkg
    Aardio培训大揭秘,轻松上手打造个人项目!https://mp.weixin.qq.com/s/cr47qhp_Cpz0p57lbbPwug
    aardio风行者第二期培训班https://mp.weixin.qq.com/s/uB6XHUDnGSk0JlWuiBE9AA
    aardio风行者第三期培训班https://mp.weixin.qq.com/s/cdZcvFiAWhlYTaSrQGCPvA
    本帖最后由 XWCXF 于 2025-5-23 13:18 编辑

    今天解锁新技能 —— 配置文件解析!配置文件就像是程序运行的 “工具包”,里面藏着各种参数和设置,而 JSON 和 INI 是最常见的两种 “密码格式”,学会读它们就能看懂程序的 “小心思”。

    一、JSON文件解析
    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,听说它很容易让人读懂和编写,机器也能轻松解析和生成。在aardio里,我们可以用json模块来解析JSON文件。

    示例1:解析简单的JSON字符串

    [AAuto] 纯文本查看 复制代码
    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文件
    [AAuto] 纯文本查看 复制代码
    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文件内容是这样的:
    [AAuto] 纯文本查看 复制代码
    {
        "host": "127.0.0.1",
        "port": 8080
    }


    这里我们先读取了JSON文件的内容,然后把它解析成了一个aardio的表,通过表的键就能访问对应的值啦。

    二、INI文件解析
    INI文件也是一种常见的配置文件格式,通常用来存储程序的配置信息。在aardio里,我们用ini模块来解析INI文件。

    示例1:解析简单的INI文件
    [AAuto] 纯文本查看 复制代码
    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文件内容是这样的:
    [AAuto] 纯文本查看 复制代码
    [Section1]
    key1 = value1
    
    [Section2]
    key2 = value2


    运行这段代码,就能通过表的键访问到对应的值啦,感觉INI文件也不难理解嘛。

    示例2:修改INI文件并保存
    [AAuto] 纯文本查看 复制代码
    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,内容是这样的:

    [AAuto] 纯文本查看 复制代码
    {
        "user": {
            "name": "李四",
            "age": 25,
            "address": {
                "city": "北京",
                "street": "长安街"
            }
        }
    }

    同时还有一个INI文件settings.ini,内容是这样的:

    [AAuto] 纯文本查看 复制代码
    [General]
    theme = dark
    font_size = 12
    
    [Network]
    server = example.com
    port = 80

    要编写一个aardio程序,读取这两个文件的配置信息,并输出用户的姓名、所在城市、主题和服务器地址。

    我的答案是这样的:

    [AAuto] 纯文本查看 复制代码
    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函数修改配置信息并保存。









    非业余 - aardio 编程语言 - 非官方问答社区
    风行者三期培训:Aardio+Python+Flutter,1000集课程让你成为全栈开发高手!https://mp.weixin.qq.com/s/_WOoHFtITUyLk2k7BXYGkg
    Aardio培训大揭秘,轻松上手打造个人项目!https://mp.weixin.qq.com/s/cr47qhp_Cpz0p57lbbPwug
    aardio风行者第二期培训班https://mp.weixin.qq.com/s/uB6XHUDnGSk0JlWuiBE9AA
    aardio风行者第三期培训班https://mp.weixin.qq.com/s/cdZcvFiAWhlYTaSrQGCPvA
    回复

    使用道具 举报

    *滑块验证:
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|非业余 - aardio 编程语言 - 非官方问答社区 知道创宇云防御

    GMT+8, 2025-6-1 16:55 , Processed in 0.088253 second(s), 30 queries .

    Powered by Discuz! X3.5

    © 2001-2025 Discuz! Team.

    快速回复 返回顶部 返回列表