中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

dw制造網(wǎng)站log怎么做谷歌推廣seo

dw制造網(wǎng)站log怎么做,谷歌推廣seo,網(wǎng)站建設(shè)域名費(fèi),一站式裝修的利弊配置文件 常見(jiàn)的配置文件有很多:JSON, Ini, XML, TOML, YAML … 目標(biāo): JSON/YAML/TOMLIniXML Rust中序列化用的最多的是 serde, 依賴它,有很多出色的第三方庫(kù)可以使用。 其中,serde本身支持JSON/YAML/TOML/JSON5…多種&#…

配置文件

常見(jiàn)的配置文件有很多:JSON, Ini, XML, TOML, YAML …

目標(biāo):

  • JSON/YAML/TOML
  • Ini
  • XML

Rust中序列化用的最多的是 serde, 依賴它,有很多出色的第三方庫(kù)可以使用。

其中,serde本身支持JSON/YAML/TOML/JSON5…多種,這里使用serde_json.

XML需要第三方庫(kù)quick-xml,他通過(guò)支持serde也支持了結(jié)構(gòu)體序列化,配合十分完美.

INI比較特別,這里有一個(gè)比較強(qiáng)大的庫(kù),支持帶注釋的ini, configparser.

依賴文件:

[dependencies]
configparser = "*"  # ini支持
serde = { version = "*", features = ["derive"] }  # 后續(xù)的庫(kù)的基礎(chǔ)
serde_json = "*"  # JSON支持
quick-xml = { version = "*",features=["serde","serialize"] } # xml 支持

Code

use configparser::ini::Ini;
use serde_json::{json, Value};
use serde::{Deserialize, Serialize};
use quick_xml;fn main() {println!("\r\n1. Ini config");ini_call();println!("\r\n2. Json config");// serde庫(kù) 支持 json, toml, yaml ... 多種格式,方法也類似json_call();println!("\r\n3. XML config");// 支持 xml encoding 設(shè)定xml_call();
}fn ini_call() {let ini_str = r#"default_s1 = 123 ; default sectionconfig s2 : abc,xyz # : also can be accept# comments 
[ app ]
port # default value is also okip = "192.168.1.2" "#;let mut conf = Ini::new();// 解析 ini 內(nèi)容if let Ok(cfg) = conf.read(ini_str.to_string()) {for (k, v) in cfg {println!("ini section: {} = {:?}", k, v);}println!("{:?}, {:?}", conf.getint("default", "default_s1"), conf.get("app", "ip"));// 修改 iniconf.set("app", "test", Some("t_val".to_string()));// output iniprintln!("\r\nini output:\r\n{}", conf.writes());}
}#[derive(Serialize, Deserialize, Debug)]
struct Person {name: String,age: u8,phones: Vec<String>,
}fn json_call() {let s1 = r#"{"name": "John Doe","age": 43,"phones": ["+44 1234567","+44 2345678"]}"#;// 解析 json// map 方式訪問(wèn),支持?jǐn)?shù)組if let Ok(mut v) = serde_json::from_str::<Value>(s1) {println!("{:?} {}", v.get("name"), v["phones"][0]);// 修改 Jsonv["test"]=serde_json::value::Value::String("xxxx".to_string());println!("value change: {}", v.to_string());}// 結(jié)構(gòu)體映射if let Ok(mut p) = serde_json::from_str::<Person>(s1) {println!("{:?}", p);// 修改 Jsonp.phones.push("1008611".to_string());println!("after: {}", serde_json::to_string_pretty(&p).unwrap());}// macro json Valuelet v1 = json!({"name": "zhangsan","age": 33,"phones": ["1", "2"]});println!("value macro: {}", v1.to_string());
}#[derive(Debug, PartialEq, Default, Serialize,Deserialize)]
#[serde(default)]
struct Translation {#[serde(rename = "@Tag")]  // @屬性tag: String,#[serde(rename = "@Language")]lang: String,#[serde(rename = "$text")]  // $內(nèi)容text: String,
}#[derive(Debug, PartialEq, Default, Serialize,Deserialize)]
#[serde(default)]
struct DefaultSettings {#[serde(rename = "@Language")]language: String,#[serde(rename = "@Greeting")]greeting: String,
}#[derive(Debug, PartialEq, Default, Serialize,Deserialize)]
#[serde(default, rename_all = "PascalCase")]
struct Config {#[serde(rename = "DefaultSettings")]settings: DefaultSettings,localization: Localization,
}
#[derive(Debug, PartialEq, Default, Serialize,Deserialize)]
#[serde(rename_all = "PascalCase")]
struct Localization {translation: Vec<Translation>,
}const XML: &str = r#"
<?xml version="1.0" encoding="utf-8"?>
<Config><DefaultSettings Language="es" Greeting="HELLO"/><Localization><Translation Tag="HELLO" Language="ja">こんにちは</Translation><Translation Tag="BYE" Language="ja">さようなら</Translation><Translation Tag="HELLO" Language="es">Hola</Translation><Translation Tag="BYE" Language="es">Adiós</Translation></Localization>
</Config>
"#;const XML2: &str = r#"<Translation Tag="HELLO" Language="ja">こんにちは</Translation>
"#;
fn xml_call(){// 簡(jiǎn)單解析XMLif let Ok(t2) = quick_xml::de::from_str::<Translation>(XML2){println!("xml2 struct:\r\n\t {:?}", t2);}// 復(fù)雜的解析XMLif let Ok(mut t) = quick_xml::de::from_str::<Config>(XML){println!("xml settings: \r\n\t{:?}", t.settings);println!("xml localization: \r\n\t{:?}", t.localization);// 修改XMLt.settings.greeting = "good good study".to_string();// outprintln!("format output:\r\n\t{}",quick_xml::se::to_string(&t).unwrap());}
}

輸出

1. Ini config
ini section: app = {"ip": Some("\"192.168.1.2\""), "port": None}
ini section: default = {"default_s1": Some("123"), "config s2": Some("abc,xyz")}
Ok(Some(123)), Some("\"192.168.1.2\"")ini output:
default_s1=123
config s2=abc,xyz
[app]
ip="192.168.1.2"
test=t_val
port2. Json config
Some(String("John Doe")) "+44 1234567"
value change: {"age":43,"name":"John Doe","phones":["+44 1234567","+44 2345678"],"test":"xxxx"}
Person { name: "John Doe", age: 43, phones: ["+44 1234567", "+44 2345678"] }
after: {"name": "John Doe","age": 43,"phones": ["+44 1234567","+44 2345678","1008611"]
}
value macro: {"age":33,"name":"zhangsan","phones":["1","2"]}3. XML config
xml2 struct:Translation { tag: "HELLO", lang: "ja", text: "こんにちは" }
xml settings: DefaultSettings { language: "es", greeting: "HELLO" }
xml localization: Localization { translation: [Translation { tag: "HELLO", lang: "ja", text: "こんにちは" }, Translation { tag: "BYE", lang: "ja", text: "さようなら" }, Translation { tag: "HELLO", lang: "es", text: "Hola" }, Translation { tag: "BYE", lang: "es", text: "Adiós" }] }
format output:<Config><DefaultSettings Language="es" Greeting="good good study"/><Localization><Translation Tag="HELLO" Language="ja">こんにちは</Translation><Translation Tag="BYE" Language="ja">さようなら</Translation><Translation Tag="HELLO" Language="es">Hola</Translation><Translation Tag="BYE" Language="es">Adiós</Translation></Localization></Config>
http://m.risenshineclean.com/news/57807.html

相關(guān)文章:

  • 站長(zhǎng)工具seo綜合查詢隱私查詢網(wǎng)推一手單渠道
  • 河北網(wǎng)站制作公司seo推廣方法
  • 網(wǎng)站建設(shè)近義詞seo sem關(guān)鍵詞優(yōu)化
  • 網(wǎng)站怎么做多級(jí)菜單引擎網(wǎng)站推廣法
  • 做資源共享網(wǎng)站福清網(wǎng)絡(luò)營(yíng)銷
  • h5網(wǎng)站制作接單域名備案
  • 濟(jì)南shuncheng科技 網(wǎng)站建設(shè)免費(fèi)推廣引流平臺(tái)有哪些
  • 請(qǐng)網(wǎng)站制作公司費(fèi)用培訓(xùn)機(jī)構(gòu)不退費(fèi)最有效方式
  • 政府網(wǎng)站作用社群推廣平臺(tái)
  • 手機(jī)網(wǎng)站開(kāi)發(fā) c資源網(wǎng)站優(yōu)化排名優(yōu)化
  • 論壇網(wǎng)站方案鄭州seo排名優(yōu)化公司
  • c語(yǔ)言和c 哪個(gè)做網(wǎng)站好網(wǎng)絡(luò)營(yíng)銷方案的范文
  • 網(wǎng)站建設(shè)gong谷歌推廣平臺(tái)
  • 提供營(yíng)銷型網(wǎng)站鄭州營(yíng)銷型網(wǎng)站建設(shè)
  • 個(gè)人網(wǎng)站怎樣做超鏈接天堂網(wǎng)
  • 廣州番禺服裝網(wǎng)站建設(shè)在線培訓(xùn)系統(tǒng)平臺(tái)
  • 北京土巴兔裝修公司電話關(guān)鍵詞優(yōu)化報(bào)價(jià)怎么樣
  • 有什么字體設(shè)計(jì)的網(wǎng)站百度發(fā)視頻步驟
  • 河南重大項(xiàng)目建設(shè)網(wǎng)站網(wǎng)絡(luò)營(yíng)銷成功的案例分析
  • 安徽大學(xué)電子信息工程學(xué)院官方網(wǎng)合肥網(wǎng)絡(luò)seo
  • 國(guó)家三大外貿(mào)平臺(tái)南寧seo費(fèi)用服務(wù)
  • 創(chuàng)業(yè)平臺(tái)是什么意思企業(yè)網(wǎng)站優(yōu)化報(bào)告
  • 磁力搜索網(wǎng)站怎么做的網(wǎng)絡(luò)推廣有幾種方法
  • 做地方門(mén)戶網(wǎng)站的資質(zhì)清遠(yuǎn)今日頭條最新消息
  • 自助網(wǎng)站安裝百度到桌面
  • 1688做網(wǎng)站費(fèi)用常州網(wǎng)站制作維護(hù)
  • 計(jì)算機(jī)網(wǎng)站開(kāi)發(fā)nba排名
  • 網(wǎng)站建設(shè)難點(diǎn)是什么2024的新聞?dòng)心男?/a>
  • 最好的網(wǎng)站開(kāi)發(fā)工具東莞seo黑帽培訓(xùn)
  • cn域名后綴網(wǎng)站東莞網(wǎng)絡(luò)推廣優(yōu)化排名