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配置

[dependencies]
serde = "1.0"
serde_derive = "1.0"

3.代码示例

MyData数据定义

#[derive(Debug, Serialize, Deserialize)]
struct MyData {
code: i32,
message: String,
}

接口引用MyData


#[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)
}


原文始发于微信公众号(ksnowlv):Actix Web添加json支持

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/254576.html

(0)
Java朝阳的头像Java朝阳

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!