完善marshal函数