gpt4 book ai didi

rust - 从 actix-web HttpRequest 返回一个 JsonValue 对象

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

我正在阅读 actix-web 的示例,但由于我是 Rust 的新手,我在理解如何根据我的需要调整代码时遇到了一些问题。

给定一个 actix-web HttpRequest,我想解析负载并返回一个 JsonValue。我不知道如何更改此函数以返回 JsonValue 而不是 HttpResponse

fn index_mjsonrust(req: &HttpRequest, ) -> Box<Future<Item = HttpResponse, Error = Error>> {
req.payload()
.concat2()
.from_err()
.and_then(|body| {
// body is loaded, now we can deserialize json-rust
let result = json::parse(std::str::from_utf8(&body).unwrap()); // return Result
let injson: JsonValue = match result {
Ok(v) => v,
Err(e) => object!{"err" => e.to_string() },
};
Ok(HttpResponse::Ok()
.content_type("application/json")
.body(injson.dump()))
})
.responder()
}

只返回 JsonValue 而不是 Future 会更好吗?

最佳答案

您必须将JsonValue 转换为字符串或字节,然后您可以将其设置为HttpResponse 主体。你不能直接返回一个JsonValue而不是box,因为请求体读取过程是异步的。

关于rust - 从 actix-web HttpRequest 返回一个 JsonValue 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52346890/

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