gpt4 book ai didi

rust - 如何使用 Diesel 查询 JSON 字段?

转载 作者:行者123 更新时间:2023-12-05 03:31:56 25 4
gpt4 key购买 nike

我有这个模型:

use diesel::sql_types::Json;

#[derive(Queryable)]
pub struct GMapsLocation {
pub id: i32,
pub place_id: String,
pub data: Json,
}

我正在尝试像这样查询该列:

    let results = gmaps_locations
.select((id, place_id, data))
.load::<GMapsLocation>(&connection)
.expect("Erorr loading locations");

那是行不通的,给我错误:

18   |         .load::<GMapsLocation>(&connection)
| ^^^^ the trait `Queryable<diesel::sql_types::Json, _>` is not implemented for `diesel::sql_types::Json`

文档没有给出任何示例,这个错误也没有告诉我任何信息。

最佳答案

好的。我想通了。

就像输入值from the documentation是一个 serde_json::Value,查询的返回值也是一个 serde_json::Value。这也是您必须放入 Queryable 结构中的内容。

我不知道 diesel::sql_types::Json 是干什么用的,但它不应该放在那里。

所以工作代码是:

#[derive(Queryable, Debug)]
pub struct GMapsLocation {
pub id: i32,
pub place_id: String,
pub data: serde_json::Value,
}

let results = gmaps_locations
.select((id, place_id, data))
.load::<GMapsLocation>(&connection)
.expect("Erorr loading locations");

关于rust - 如何使用 Diesel 查询 JSON 字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70558194/

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