如何从serde_json::Value直接访问JSON数组并获取字段?
直接链式访问serde_json数组中的字段
你的JSON是数组结构,要直接访问里面对象的字段且不用额外变量,直接用数组索引 + 字段名链式访问即可——serde_json::Value的数组类型支持通过数字索引取值,取到的对象又支持通过字段名索引。
比如你要打印第一个元素的name字段,直接写:
println!("{:?}", json[0]["name"]);
给你一个完整的示例代码:
use serde_json::json; fn main() { // 构造目标JSON数组 let json = json!([ { "name": "jsonvalue" } ]); // 直接链式访问并打印字段 println!("{:?}", json[0]["name"]); }
如果数组里有多个元素,替换索引数字就能访问对应元素的字段,比如json[1]["name"]对应第二个元素。
注意:这种索引写法如果遇到数组越界或字段不存在会直接panic;要是需要安全访问,可以用get方法链式调用(如json.get(0)?.get("name")),但需要处理Option和Result类型,你要的直接访问场景用索引写法就足够。
内容的提问来源于stack exchange,提问作者salmon
相关产品推荐
相关产品推荐

