mirror of
https://github.com/SagerNet/sing-box.git
synced 2024-11-16 12:42:22 +08:00
Improve usages of json.Unmarshal
This commit is contained in:
parent
9b8d6c1b73
commit
f4f5a3c925
|
@ -1,8 +1,6 @@
|
|||
package option
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
|
||||
"github.com/sagernet/sing/common"
|
||||
E "github.com/sagernet/sing/common/exceptions"
|
||||
"github.com/sagernet/sing/common/json"
|
||||
|
@ -69,7 +67,5 @@ func UnmarshallExcluded(inputContent []byte, parentObject any, object any) error
|
|||
if err != nil {
|
||||
return err
|
||||
}
|
||||
decoder := json.NewDecoder(bytes.NewReader(inputContent))
|
||||
decoder.DisallowUnknownFields()
|
||||
return decoder.Decode(object)
|
||||
return json.UnmarshalDisallowUnknownFields(inputContent, object)
|
||||
}
|
||||
|
|
|
@ -128,12 +128,12 @@ func (l Listable[T]) MarshalJSON() ([]byte, error) {
|
|||
}
|
||||
|
||||
func (l *Listable[T]) UnmarshalJSON(content []byte) error {
|
||||
err := json.Unmarshal(content, (*[]T)(l))
|
||||
err := json.UnmarshalDisallowUnknownFields(content, (*[]T)(l))
|
||||
if err == nil {
|
||||
return nil
|
||||
}
|
||||
var singleItem T
|
||||
newError := json.Unmarshal(content, &singleItem)
|
||||
newError := json.UnmarshalDisallowUnknownFields(content, &singleItem)
|
||||
if newError != nil {
|
||||
return E.Errors(err, newError)
|
||||
}
|
||||
|
|
|
@ -26,5 +26,5 @@ func (o *UDPOverTCPOptions) UnmarshalJSON(bytes []byte) error {
|
|||
if err == nil {
|
||||
return nil
|
||||
}
|
||||
return json.Unmarshal(bytes, (*_UDPOverTCPOptions)(o))
|
||||
return json.UnmarshalDisallowUnknownFields(bytes, (*_UDPOverTCPOptions)(o))
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user