mirror of
https://github.com/QuantumNous/new-api.git
synced 2026-04-19 16:18:37 +00:00
feat: dalle 自定义字段透传
This commit is contained in:
@@ -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++ {
|
||||||
|
|||||||
Reference in New Issue
Block a user