mirror of
https://github.com/shtorm-7/sing-box-extended.git
synced 2026-06-25 11:53:11 +03:00
Remove go-json
This commit is contained in:
@@ -2,6 +2,7 @@ package badjson
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"reflect"
|
||||
|
||||
"github.com/sagernet/sing-box/common/json"
|
||||
E "github.com/sagernet/sing/common/exceptions"
|
||||
@@ -36,11 +37,15 @@ func (a *JSONArray[T]) UnmarshalJSON(content []byte) error {
|
||||
|
||||
func (a *JSONArray[T]) decodeJSON(decoder *json.Decoder) error {
|
||||
for decoder.More() {
|
||||
var item T
|
||||
err := decoder.Decode(&item)
|
||||
value, err := decodeJSON(decoder)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
item, ok := value.(T)
|
||||
if !ok {
|
||||
var defValue T
|
||||
return E.New("can't cast ", value, " to ", reflect.TypeOf(defValue))
|
||||
}
|
||||
*a = append(*a, item)
|
||||
}
|
||||
return nil
|
||||
|
||||
@@ -49,7 +49,7 @@ func (m *JSONObject) UnmarshalJSON(content []byte) error {
|
||||
}
|
||||
err = m.decodeJSON(decoder)
|
||||
if err != nil {
|
||||
return err
|
||||
return E.Cause(err, "decode json object content")
|
||||
}
|
||||
objectEnd, err := decoder.Token()
|
||||
if err != nil {
|
||||
@@ -63,14 +63,15 @@ func (m *JSONObject) UnmarshalJSON(content []byte) error {
|
||||
func (m *JSONObject) decodeJSON(decoder *json.Decoder) error {
|
||||
for decoder.More() {
|
||||
var entryKey string
|
||||
err := decoder.Decode(&entryKey)
|
||||
keyToken, err := decoder.Token()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
entryKey = keyToken.(string)
|
||||
var entryValue any
|
||||
entryValue, err = decodeJSON(decoder)
|
||||
if err != nil {
|
||||
return err
|
||||
return E.Cause(err, "decode value for ", entryKey)
|
||||
}
|
||||
m.Put(entryKey, entryValue)
|
||||
}
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
//go:build !with_std_json
|
||||
|
||||
package json
|
||||
|
||||
import "github.com/goccy/go-json"
|
||||
|
||||
var (
|
||||
Marshal = json.Marshal
|
||||
Unmarshal = json.Unmarshal
|
||||
NewEncoder = json.NewEncoder
|
||||
NewDecoder = json.NewDecoder
|
||||
)
|
||||
|
||||
type (
|
||||
Encoder = json.Encoder
|
||||
Decoder = json.Decoder
|
||||
Token = json.Token
|
||||
Delim = json.Delim
|
||||
SyntaxError = json.SyntaxError
|
||||
)
|
||||
@@ -1,5 +1,3 @@
|
||||
//go:build with_std_json
|
||||
|
||||
package json
|
||||
|
||||
import "encoding/json"
|
||||
|
||||
Reference in New Issue
Block a user