Explorar o código

fix: 优化 ImageRequest 的 JSON 序列化,避免覆盖合并 ExtraFields

creamlike1024 hai 5 meses
pai
achega
db6a788e0d
Modificáronse 1 ficheiros con 5 adicións e 3 borrados
  1. 5 3
      dto/openai_image.go

+ 5 - 3
dto/openai_image.go

@@ -64,19 +64,21 @@ func (r ImageRequest) MarshalJSON() ([]byte, error) {
 	// 将已定义字段转为 map
 	type Alias ImageRequest
 	alias := Alias(r)
-	base, err := json.Marshal(alias)
+	base, err := common.Marshal(alias)
 	if err != nil {
 		return nil, err
 	}
 
 	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
 	}
 
 	// 合并 ExtraFields
 	for k, v := range r.Extra {
-		baseMap[k] = v
+		if _, exists := baseMap[k]; !exists {
+			baseMap[k] = v
+		}
 	}
 
 	return json.Marshal(baseMap)