You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gojson/gojson.go

78 lines
1.6 KiB

package gojson
import (
"go.dtapp.net/gojson/json"
"strings"
)
func Marshal(v any) ([]byte, error) {
return json.Marshal(v)
}
func Unmarshal(data []byte, v any) error {
return json.Unmarshal(data, v)
}
func Encode(v interface{}) (string, error) {
bytes, err := json.Marshal(v)
if err != nil {
return "", err
}
return string(bytes), nil
}
func MarshalToString(msg interface{}) (string, error) {
j, e := json.Marshal(msg)
if e != nil {
return "", e
}
return string(j), nil
}
func JsonDecode(data string) (map[string]interface{}, error) {
var dat map[string]interface{}
err := json.Unmarshal([]byte(data), &dat)
return dat, err
}
func JsonDecodeNoError(data string) map[string]interface{} {
var dat map[string]interface{}
_ = json.Unmarshal([]byte(data), &dat)
return dat
}
func JsonEncode(data interface{}) (string, error) {
jsons, err := json.Marshal(data)
return string(jsons), err
}
func JsonEncodeNoError(data interface{}) string {
jsons, _ := json.Marshal(data)
return string(jsons)
}
func JsonDecodesNoError(data string) []string {
var dat []string
_ = json.Unmarshal([]byte(data), &dat)
return dat
}
func ParseQueryString(input string) map[string]interface{} {
paramMap := make(map[string]interface{})
keyValuePairs := strings.Split(input, "&")
for _, pair := range keyValuePairs {
parts := strings.Split(pair, "=")
if len(parts) == 2 {
key := parts[0]
value := parts[1]
paramMap[key] = value
}
}
return paramMap
}
func IsValidJSON(s string) bool {
var js map[string]interface{}
return json.Unmarshal([]byte(s), &js) == nil
}