我有一个JSON数据流,其中一些JSON对象可能缺少某些字段,或者有我事先不知道的字段.
我的解决方案是使用:
let v: Value = serde_json::from_str(data)?;
如何处理访问字段stuff
?如果我知道它存在,我可以使用:
v["stuff"]
如何处理 case stuff
不是我数据中的一个字段?
我有一个JSON数据流,其中一些JSON对象可能缺少某些字段,或者有我事先不知道的字段.
我的解决方案是使用:
let v: Value = serde_json::from_str(data)?;
如何处理访问字段stuff
?如果我知道它存在,我可以使用:
v["stuff"]
如何处理 case stuff
不是我数据中的一个字段?
如果字段不存在,则通过Value
(即v["stuff"]
)的Index
实现访问缺失字段将导致死机.而是使用Value::get
,它返回Option
:
if let Some(field) = v.get("stuff") {
println!("field = {:?}", field);
} else {
println!("field is missing");
}