toml文件解析(一)

Cargo.toml

.toml文件解析

👉整个Toml文件其实就是一个大 Table,里面包含了多组键值对,值也可以是一个Table,大概长这样:

Table({
key1 : value1,
key2 : Table({
	key3:value3
	}),
...
})

举个🌰:

a = "b"		#解析之后的数据结构👉"a": String("b",),
i = 1		#解析之后的数据结构👉"i": Integer(1,),
[package]	#👉"package": Table({ "name": String("study-toml",),...}),
name = "study-toml"
version = "0.1.0"
edition = "2021"

[dependencies]
toml = "0.8.13"

[my_string]
hello_world = "hello world"
读取整个toml文件并打印:
程序:
// main.rs
extern crate toml;

use std::fs;
use toml::Value;

fn main() {
    let toml_content = fs::read_to_string("Cargo.toml").expect("Unable to read file");

    let parsed_toml: Value = toml::from_str(&toml_content).expect("Unable to parse TOML");
    println!("{:#?}", parsed_toml);
    // let toml_version = &parsed_toml["my_string"]["hello_world"];
    // println!("{:?}", toml_version);
}

⚠️需在配置文件 Cargo.toml 中 添加依赖:
[dependencies]
toml = “0.8.13”

然后 cargo build,再 cargo run

输出:
Table(
    {
        "a": String(
            "b",
        ),
        "dependencies": Table(
            {
                "toml": String(
                    "0.8.13",
                ),
            },
        ),
        "i": Integer(
            1,
        ),
        "my_string": Table(
            {
                "hello_world": String(
                    "hello world",
                ),
            },
        ),
        "package": Table(
            {
                "edition": String(
                    "2021",
                ),
                "name": String(
                    "study-toml",
                ),
                "version": String(
                    "0.1.0",
                ),
            },
        ),
    },
)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

憨七龟777

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值