Commit 00579f2f by Xyfacai

feat: dalle 自定义字段透传

parent b3e67d5e
...@@ -59,6 +59,29 @@ func (i *ImageRequest) UnmarshalJSON(data []byte) error { ...@@ -59,6 +59,29 @@ func (i *ImageRequest) UnmarshalJSON(data []byte) error {
return nil return nil
} }
// 序列化时需要重新把字段平铺
func (r ImageRequest) MarshalJSON() ([]byte, error) {
// 将已定义字段转为 map
type Alias ImageRequest
alias := Alias(r)
base, err := json.Marshal(alias)
if err != nil {
return nil, err
}
var baseMap map[string]json.RawMessage
if err := json.Unmarshal(base, &baseMap); err != nil {
return nil, err
}
// 合并 ExtraFields
for k, v := range r.Extra {
baseMap[k] = v
}
return json.Marshal(baseMap)
}
func GetJSONFieldNames(t reflect.Type) map[string]struct{} { func GetJSONFieldNames(t reflect.Type) map[string]struct{} {
fields := make(map[string]struct{}) fields := make(map[string]struct{})
for i := 0; i < t.NumField(); i++ { for i := 0; i < t.NumField(); i++ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment