|
|
|
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
|
|
|
|
}
|