通过serde解析有效的json字符串将导致错误-“;尾随字符“;

通过serde解析有效的json字符串将导致错误-“;尾随字符“;,json,ruby,rust,serde,Json,Ruby,Rust,Serde,我有一个Rust库和Ruby项目。我通过FFi从Ruby调用一个Rust函数 Rust库中有一个函数,用于接收字符串并将其转换为json 红宝石方面: my_json_raw_str = { network: { server_address: "my_server.com" } } res = send_it_to_rust(my_json_raw_str.to_json) Rust中的函数在解析从Ruby发送给它的json字符串时将引发异常 从Rust

我有一个Rust库和Ruby项目。我通过FFi从Ruby调用一个Rust函数

Rust库中有一个函数,用于接收字符串并将其转换为json

红宝石方面:

my_json_raw_str = {
  network: {
    server_address: "my_server.com"
  }
}

res = send_it_to_rust(my_json_raw_str.to_json)
Rust中的函数在解析从Ruby发送给它的json字符串时将引发异常

从Rust返回的错误:

Invalid parameters: trailing characters at line 1 column 47\nparams: [{\"network\":{\"server_address\":\"my_server.com\"}}\u0000]
Json是有效的,不是吗

serde
serde_json
serde_派生
用于生锈面

如何修复错误以及导致错误的原因

Json是有效的,不是吗


您的JSON无效,因为您的FFI层不正确:如果您查看错误,它清楚地告诉您数据中有一个尾随NUL字节,这意味着在C和Rust之间桥接时,您留下了C字符串的尾随NUL字节。

其中的
\u0000
是什么意思?