我是Rust的新手,有一个项目需要指定一个树的配置,在JSON中可能是这样的:
{
"a": {
"d": {
"val": 10
},
"e": {
val: 20
}
},
"b": {
"val": 5
},
"c": {
"val": 1
}
}
这里,根具有3个子节点"a、b、c",并且"a"具有两个子节点"d、e",其中一个与值10相关联,另一个与值20相关联,等等。换句话说,树可以具有任意深度,并且只有叶节点具有相关联的值。
我的问题:有没有办法把Rust straight中的这样一个结构解析成一些structs?解析这样的东西最干净的方法是什么?
1条答案
按热度按时间5ssjco0h1#
解析这样的东西最干净的方法是什么?
这取决于你的用例,我认为最简单的解决方案是将其解析为一个无标记的枚举,它可以是一个带值的叶子,也可以是一个子树。对于子树,可以使用
HashMap
。下面是一个可以解析json的简单示例:Playground.
但是就像我说的,这取决于你想在你的Rust代码中对树做什么,这种数据结构对你来说是否可行。