當我像這樣在銹柴油中定義 jsonb 時diesel = { version = "1.4.7", features = ["postgres","serde_json"] }:
#[macro_use]
extern crate diesel;
use diesel::pg::types::sql_types::Jsonb;
use rocket::serde::Deserialize;
use rocket::serde::Serialize;
fn main() {
println!("hello")
}
#[derive(Queryable,Debug,Serialize,Deserialize,Default)]
//#[table_name = "test"]
pub struct Test {
pub id: i64,
pub tags: Jsonb,
}
編譯器顯示錯誤:
the trait `Deserialize<'_>` is not implemented for `Jsonb`
我應該怎么做才能讓柴油處理 PostgreSQL jsonb 資料型別?
uj5u.com熱心網友回復:
我認為您使用的Jsonb型別不正確。它是一種資料庫列型別,它確定資料在資料庫本身中的編碼方式,但不打算在應用程式資料結構和訊息傳遞中直接使用。
假設您的表定義如下:
table! {
test {
id -> Integer,
tags -> Jsonb,
}
}
您可以將行轉換為這樣的結構:
#[derive(Queryable, Debug, Serialize, Deserialize)]
pub struct Test {
pub id: i64,
pub tags: serde_json::Value,
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/469546.html
標籤:PostgreSQL 锈 锈柴油
