尝试使用 serde_json 解析字符串时出现 "trailing characters" 错误
Getting "trailing characters" error when trying to parse string with serde_json
我需要转换 serde_json::Value 中的特定字符串,但在使用时出现尾随字符错误:
let new_str = "73723235c81ebbec0"
let json_value: serde_json::Value = serde_json::from_str(new_str).unwrap();
错误:
trailing characters at line 1 column 9
有没有办法将这些类型的字符串转换为 serde_json::Value?
查看 serde_json
的存储库,从他们的测试用例来看,这是预期的行为。例如,请参阅此 test case。由于您的字符串以数值开头,因此它试图解析为数字,然后在到达位置 9 的 'c' 时失败。
不要调用 from_str()
,而是使用 to_value()
。这将为您提供 Value
枚举的 String
变体。
let json_value: serde_json::Value = serde_json::to_value(&new_str).unwrap();
此外,如果您使用 to_value()
,您可以省略变量的类型标识符,我认为这可能更符合习惯。
let json_value = serde_json::to_value(&new_str).unwrap();
我需要转换 serde_json::Value 中的特定字符串,但在使用时出现尾随字符错误:
let new_str = "73723235c81ebbec0"
let json_value: serde_json::Value = serde_json::from_str(new_str).unwrap();
错误:
trailing characters at line 1 column 9
有没有办法将这些类型的字符串转换为 serde_json::Value?
查看 serde_json
的存储库,从他们的测试用例来看,这是预期的行为。例如,请参阅此 test case。由于您的字符串以数值开头,因此它试图解析为数字,然后在到达位置 9 的 'c' 时失败。
不要调用 from_str()
,而是使用 to_value()
。这将为您提供 Value
枚举的 String
变体。
let json_value: serde_json::Value = serde_json::to_value(&new_str).unwrap();
此外,如果您使用 to_value()
,您可以省略变量的类型标识符,我认为这可能更符合习惯。
let json_value = serde_json::to_value(&new_str).unwrap();