Actix Web添加Json支持
1.rust json库
-
serde_json
- Rust中最流行的JSON库之一,可以用于序列化和反序列化JSON数据。它与serde库集成,Rust数据结构和JSON可以互转。
-
json-rust
- 轻量级JSON库,在处理小型JSON数据的时候非常方便,而且易于使用。
-
rustc-serialize
- Rust标准库中的JSON库,提供了对JSON数据的序列化和反序列化支持,但已经被推荐使用serde_json来替代。
-
json5-rust
- 用于解析和序列化JSON5格式数据的Rust库。JSON5是对JSON语法的扩展,可以更加灵活地表示JSON数据。用于配置文件,来解析配置文件。或数据交换,或写作工具中的编辑器
因此,我们选择serde_json。
2.Cargo.toml配置
1
2
3
|
[dependencies]
serde = "1.0"
serde_derive = "1.0"
|
3.代码示例
MyData数据定义
1
2
3
4
5
|
#[derive(Debug, Serialize, Deserialize)]
struct MyData {
code: i32,
message: String,
}
|
接口引用MyData
1
2
3
4
5
6
7
8
9
10
11
12
13
|
#[post("/from_json")]
async fn from_json(my_data: web::Json<MyData>) -> impl Responder {
println!("Received mydata from JSON: {:?}", my_data);
HttpResponse::Ok().json(my_data)
}
#[post("/to_json")]
async fn to_json() -> impl Responder {
let my_data = MyData { code: 1, message: "OK".to_string() };
let json_data = serde_json::to_string(&my_data).unwrap();
HttpResponse::Ok().body(json_data)
}
|
文章作者
梵梵爸
上次更新
2024-01-31
许可协议
原创文章,如需转载请注明文章作者和出处。谢谢