gpt4 book ai didi

rust - 从 toml 文件读取的字符串值包含额外的引号

转载 作者:行者123 更新时间:2023-11-29 08:18:31 26 4
gpt4 key购买 nike

从 toml 文件中读取的字符串值包含额外的引号:

  # Toml file
string_key = "fdsafdsafdsfds"

代码:

let cfg_file_content = get_config_file_content();
let cfg_data: Value = toml::from_str(&cfg_file_content).expect("failed to parse toml");
cfg_data.as_table().unwrap();

//1
let val1 = cfg_data.get("string_key").unwrap();

// ====> \""fdsafdsafdsfds\""
// or String("fdsafdsafdsfds")



//2
let val = format!("value is: {}", val1);
println!("{:?}", val);

// ====> "value is: \"fdsafdsafdsfds\""

如何去掉这些额外的引号?

crate :

toml = "0.4.5"

最佳答案

val1Value toml的enum,需要转成str:

let val = format!("value is: {}", val1.as_str().unwrap());

但是,你应该使用 serde crate 将为您完成工作。

例如:

extern crate toml;
#[macro_use]
extern crate serde_derive;

#[derive(Serialize, Deserialize, Debug)]
struct Foo {
string_key: String,
}

fn main() {
let foo: Foo = toml::from_str("string_key = \"fdsafdsafdsfds\"").unwrap();
println!("{:?}", foo);

// or
use std::collections::BTreeMap;
let foo: BTreeMap<String, String> = toml::from_str("string_key = \"fdsafdsafdsfds\"").unwrap();
println!("{:?}", foo);
}

关于rust - 从 toml 文件读取的字符串值包含额外的引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48123998/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com