rust String转i32
时间: 2023-10-13 08:19:56 浏览: 48
可以使用`parse()`方法将`String`类型转换为`i32`类型,示例如下:
```
let num_str = "123";
let num = num_str.parse::<i32>().unwrap();
```
其中,`parse()`方法会尝试将字符串解析为指定类型的值,如果解析成功则返回`Ok`枚举类型的结果值,否则返回`Err`枚举类型的错误信息。因此,上述代码中使用了`unwrap()`方法来获取`Ok`枚举类型的结果值,并将其赋值给`num`变量。如果`num_str`字符串无法解析为`i32`类型的值,则会引发`unwrap()`方法的panic错误。为避免这种情况,可以使用`match`或`if let`等语句来处理`parse()`方法的返回值。
相关问题
rust 将string里的数值存到i32为变量里
可以使用parse方法将string类型的数值转换为i32类型的变量。例如:
```rust
let my_string = "123";
let my_number = my_string.parse::<i32>().unwrap();
```
这里,我们首先定义了一个字符串my_string,它包含了一个数值"123"。然后,我们使用parse方法将该字符串转换为i32类型的变量my_number。最后,我们使用unwrap方法获取my_number的值。
如果字符串中包含的不是一个有效的数值,则parse方法会返回一个错误。因此,通常需要使用unwrap或者其他的错误处理方法来处理可能的错误。
rust json 蛇形和驼峰互转
在 Rust 中,可以使用 serde 库来进行 JSON 的序列化和反序列化。而 serde 提供了一个 feature 叫做 `serde_with`,可以方便地进行蛇形和驼峰的互转。
首先需要在 Cargo.toml 中添加以下依赖:
```toml
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
serde_with = { version = "1.9", features = ["serde_json"] }
```
然后定义一个 struct,使用 `#[serde(rename_all = "xxx")]` 属性来指定字段名的转换方式。其中,`xxx` 可以是 `snake_case`、`camelCase`、`PascalCase` 等。
```rust
use serde::{Deserialize, Serialize};
use serde_with::serde_as;
#[derive(Debug, Deserialize, Serialize)]
struct User {
#[serde(rename = "id")]
user_id: i32,
#[serde(rename = "userName")]
user_name: String,
#[serde(rename = "createdAt")]
#[serde_as(as = "DateTime<Local>", rename = "createdAt")]
created_at: DateTime<Local>,
}
```
在上面的例子中,`user_id` 和 `user_name` 使用了 `rename` 属性来分别指定了转换后的字段名,`created_at` 使用了 `serde_as` 来指定了字段名和数据类型的转换方式。
如果要将 JSON 字符串转换为 struct,可以使用 `serde_json::from_str` 方法:
```rust
use serde_json::from_str;
let json_str = r#"{ "id": 1, "userName": "Alice", "createdAt": "2021-01-01T00:00:00+08:00" }"#;
let user: User = from_str(json_str).unwrap();
println!("{:?}", user);
```
如果要将 struct 转换为 JSON 字符串,可以使用 `serde_json::to_string` 方法:
```rust
use serde_json::to_string;
let user = User {
user_id: 1,
user_name: "Alice".to_owned(),
created_at: Local::now(),
};
let json_str = to_string(&user).unwrap();
println!("{}", json_str);
```
在输出的 JSON 字符串中,字段名就会按照指定的转换方式进行转换。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)