我有一个很大的复杂的YAML文件,我成功地将其读入serde_yaml::Value
,并需要将其作为JSON发送给用户(从Axum处理程序)。
但是在那个大YAML的深处有像null
这样的键,而serde_json::json!
会发出“key必须是字符串”的警告。
我知道这对YAML是有效的,但对JSON无效。
但是有没有什么变通的办法呢?我只需要像"null"
这样的字符串键来代替那些空值。
JavaScript和Go YAML解析器的行为与此完全相同...
我为此写了一个很大的递归函数,它可以手动转换值,但也许这有点过头了。而且我的函数不知何故打破了YAML合并(<<
),还不知道为什么。
1条答案
按热度按时间czfnxgou1#
你可以简单地将yaml反序列化为
serde_json::Value
,这样就可以保证它以后可以序列化为json:输出:
Playground