serde_json Object 数据合并操作 use serde_json::Value; /// 合并两个JSON对象 fn merge_json(obj_a: Value, obj_b: Value) -> Value { let map_a = obj_a.as_object(); let map_b = obj_b.as_object(); // 任意参数转为 Object 失败直接返回 if map_a.is_none() || map_b.is_none() { return Value::Null; } let map_a = map_a.unwrap(); let map_b = map_b.unwrap(); let mut data = map_a.clone(); for (key, value) in map_b.iter() { data.insert(key.into(), value.clone()); } Value::Object(data) } 示例: use serde_json::json; fn main() { let a = json!({ "id": 1, "name": "Alex", "age": 18, }); let b = merge_json(a, json!({ "name": "bob", })); println!("合并后: {:?}", b); } 输出结果类似: 合并后:Object {"age": Number(18), "id": Number(1), "name": String("bob")}