小编Tom*_*rc1的帖子

为什么我在尝试使用 serde_json 解析数据时总是收到“尾随字符”错误?

我有一个以 JSON 格式返回请求的服务器。当尝试解析数据时,我总是收到“尾随字符”错误。仅当从邮递员获取 JSON 时才会发生这种情况

let type_of_request = parsed_request[1];
let content_of_msg: Vec<&str> = msg_from_client.split("\r\n\r\n").collect();

println!("{}", content_of_msg[1]); 
// Will print "{"username":"user","password":"password","email":"dwadwad"}"

let res: serde_json::Value = serde_json::from_str(content_of_msg[1]).unwrap();

println!("The username is: {}", res["username"]);
Run Code Online (Sandbox Code Playgroud)

从邮递员获取数据时会发生这种情况:

thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Error("trailing characters", line: 1, column: 60)', src\libcore\result.rs:997:5
Run Code Online (Sandbox Code Playgroud)

但是当 Rust 中有字符串时:

let j = "{\"username\":\"user\",\"password\":\"password\",\"email\":\"dwadwad\"}";

let res: serde_json::Value = serde_json::from_str(j).unwrap();

println!("The username is: {}", res["username"]);
Run Code Online (Sandbox Code Playgroud)

它就像一个魅力:

The username is: "user"
Run Code Online (Sandbox Code Playgroud)

编辑:显然,当我将消息读入缓冲区并将其转换为字符串时,它保存了缓冲区具有的所有 NULL 字符,这些字符当然是尾随字符。

json rust

5
推荐指数
1
解决办法
7385
查看次数

标签 统计

json ×1

rust ×1