fix: 优化 ImageRequest 的 JSON 序列化,避免覆盖合并 ExtraFields
This commit is contained in:
parent
451076fa51
commit
497fdba3f8
@ -64,19 +64,21 @@ func (r ImageRequest) MarshalJSON() ([]byte, error) {
|
|||||||
// 将已定义字段转为 map
|
// 将已定义字段转为 map
|
||||||
type Alias ImageRequest
|
type Alias ImageRequest
|
||||||
alias := Alias(r)
|
alias := Alias(r)
|
||||||
base, err := json.Marshal(alias)
|
base, err := common.Marshal(alias)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
var baseMap map[string]json.RawMessage
|
var baseMap map[string]json.RawMessage
|
||||||
if err := json.Unmarshal(base, &baseMap); err != nil {
|
if err := common.Unmarshal(base, &baseMap); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
// 合并 ExtraFields
|
// 合并 ExtraFields
|
||||||
for k, v := range r.Extra {
|
for k, v := range r.Extra {
|
||||||
baseMap[k] = v
|
if _, exists := baseMap[k]; !exists {
|
||||||
|
baseMap[k] = v
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return json.Marshal(baseMap)
|
return json.Marshal(baseMap)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user