serde_json to json 在柴油数据库对象中打印附加字符串 \r 和 \n

Posted

技术标签:

【中文标题】serde_json to json 在柴油数据库对象中打印附加字符串 \\r 和 \\n【英文标题】:serde_json to json prints addtitonal String \r and \n in diesel db objectserde_json to json 在柴油数据库对象中打印附加字符串 \r 和 \n 【发布时间】:2021-01-06 05:26:26 【问题描述】:

Playground link

use serde_json::json; // 1.0.57
fn main() 

let users = vec![Users 
  id : 10,
  username : "test".to_string(),
  password : "pass".to_string()
  ];
 for user in &users 
     println!("I print  id:,password:,username: ",user.id, user.password, user.username);
 
 println!("json_serde prints ",json!(&users));
 
 let serialized = serde_json::to_string(&users).unwrap();
 println!("Different serde: ",serialized);

#[derive(Serialize, Deserialize)]
pub struct Users 
 pub id: i32,
 pub username: String,
 pub password: String,

它工作得很好,但在我的服务器上我得到了这个

I print  id:4,password:test, username:test
json_serde prints ["id":4,"password":"test\r\n","username":"test\r"]

唯一的区别是我从数据库中获取数据

柴油查询

    let users = users
    .filter(id.eq(p_id))
    .limit(10)
    .load::<Users>(&connection)
    .expect("Error loading posts"),

model.rs 中的实际用户

    #[derive(Queryable)]
    #[derive(Serialize, Deserialize)]
    pub struct Users 
        pub id: i32,
        pub username: String,
        pub password: String,
    

shema.rs

 table! 
        users (id) 
            id -> Int4,
            username -> Varchar,
            password -> Varchar,
        
    

【问题讨论】:

这个问题无法回答,因为它缺少重要的细节,比如数据是如何准确地插入到数据库中的,以及使用了哪些版本的 crate。 【参考方案1】:

我忘记修剪我的输入,所以 serde_json 是正确的

【讨论】:

以上是关于serde_json to json 在柴油数据库对象中打印附加字符串 \r 和 \n的主要内容,如果未能解决你的问题,请参考以下文章

错误:必须在此上下文(Rust)/ serde_json值中知道此值的类型

在柴油机中执行正确连接

我如何懒惰地从Rust中的文件/流中读取多个JSON值?

使用柴油和杜松插入值时出现奇怪的错误

Rust 和 Serde JSON 反序列化示例?

如何使用锈柴油创建新数据库?