| package common | |
| import ( | |
| "bytes" | |
| "encoding/json" | |
| "io" | |
| ) | |
| func Unmarshal(data []byte, v any) error { | |
| return json.Unmarshal(data, v) | |
| } | |
| func UnmarshalJsonStr(data string, v any) error { | |
| return json.Unmarshal(StringToByteSlice(data), v) | |
| } | |
| func DecodeJson(reader io.Reader, v any) error { | |
| return json.NewDecoder(reader).Decode(v) | |
| } | |
| func Marshal(v any) ([]byte, error) { | |
| return json.Marshal(v) | |
| } | |
| func GetJsonType(data json.RawMessage) string { | |
| data = bytes.TrimSpace(data) | |
| if len(data) == 0 { | |
| return "unknown" | |
| } | |
| firstChar := bytes.TrimSpace(data)[0] | |
| switch firstChar { | |
| case '{': | |
| return "object" | |
| case '[': | |
| return "array" | |
| case '"': | |
| return "string" | |
| case 't', 'f': | |
| return "boolean" | |
| case 'n': | |
| return "null" | |
| default: | |
| return "number" | |
| } | |
| } | |