mirror of
https://github.com/unti-io/go-utils.git
synced 2025-10-06 00:36:57 +08:00
v1.2.6
This commit is contained in:
@@ -51,6 +51,7 @@ func init() {
|
|||||||
Array.Remove = ArrayRemove
|
Array.Remove = ArrayRemove
|
||||||
Array.Unique = ArrayUnique[any]
|
Array.Unique = ArrayUnique[any]
|
||||||
Array.Empty = ArrayEmpty[any]
|
Array.Empty = ArrayEmpty[any]
|
||||||
|
Array.MapWithField = ArrayMapWithField
|
||||||
Password.Create = PasswordCreate
|
Password.Create = PasswordCreate
|
||||||
Password.Verify = PasswordVerify
|
Password.Verify = PasswordVerify
|
||||||
Rand.Int = RandInt
|
Rand.Int = RandInt
|
||||||
@@ -67,6 +68,7 @@ func init() {
|
|||||||
Json.Encode = JsonEncode
|
Json.Encode = JsonEncode
|
||||||
Json.Decode = JsonDecode
|
Json.Decode = JsonDecode
|
||||||
Json.Get = JsonGet
|
Json.Get = JsonGet
|
||||||
|
Json.String = JsonString
|
||||||
Format.Query = FormatQuery
|
Format.Query = FormatQuery
|
||||||
Parse.ParamsBefore = ParseParamsBefore
|
Parse.ParamsBefore = ParseParamsBefore
|
||||||
Parse.Params = ParseParams
|
Parse.Params = ParseParams
|
||||||
@@ -142,6 +144,7 @@ var Array struct {
|
|||||||
Remove func(array []string, args ...string) (slice []string)
|
Remove func(array []string, args ...string) (slice []string)
|
||||||
Unique func(array []any) (slice []any)
|
Unique func(array []any) (slice []any)
|
||||||
Empty func(array []any) (slice []any)
|
Empty func(array []any) (slice []any)
|
||||||
|
MapWithField func(array []map[string]any, field any) (slice []any)
|
||||||
}
|
}
|
||||||
|
|
||||||
var Password struct {
|
var Password struct {
|
||||||
@@ -170,6 +173,7 @@ var Json struct {
|
|||||||
Encode func(value any) (result string)
|
Encode func(value any) (result string)
|
||||||
Decode func(value any) (result any)
|
Decode func(value any) (result any)
|
||||||
Get func(value any, key any) (result any, err error)
|
Get func(value any, key any) (result any, err error)
|
||||||
|
String func(value any) (result string)
|
||||||
}
|
}
|
||||||
|
|
||||||
var Format struct {
|
var Format struct {
|
||||||
|
@@ -1,6 +1,7 @@
|
|||||||
package utils
|
package utils
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"github.com/spf13/cast"
|
||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -51,3 +52,21 @@ func ArrayEmpty[T any](array []T) (slice []any) {
|
|||||||
}
|
}
|
||||||
return slice
|
return slice
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ArrayMapWithField - 数组Map保留指定字段
|
||||||
|
func ArrayMapWithField(array []map[string]any, field any) (slice []any) {
|
||||||
|
|
||||||
|
// 获取字段
|
||||||
|
keys := cast.ToStringSlice(Unity.Keys(field))
|
||||||
|
|
||||||
|
if IsEmpty(keys) {
|
||||||
|
return cast.ToSlice(array)
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, item := range array {
|
||||||
|
val := Map.WithField(cast.ToStringMap(item), keys)
|
||||||
|
slice = append(cast.ToSlice(slice), val)
|
||||||
|
}
|
||||||
|
|
||||||
|
return slice
|
||||||
|
}
|
||||||
|
@@ -4,6 +4,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
json "github.com/json-iterator/go"
|
json "github.com/json-iterator/go"
|
||||||
"github.com/spf13/cast"
|
"github.com/spf13/cast"
|
||||||
|
"sort"
|
||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -42,3 +43,35 @@ func JsonGet(jsonString any, key any) (result any, err error) {
|
|||||||
|
|
||||||
return result, nil
|
return result, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// JsonString map转json字符串
|
||||||
|
func JsonString(data any) (result string) {
|
||||||
|
|
||||||
|
item := cast.ToStringMap(data)
|
||||||
|
|
||||||
|
// 将map的key排序
|
||||||
|
keys := make([]string, 0, len(item))
|
||||||
|
for key := range item {
|
||||||
|
keys = append(keys, key)
|
||||||
|
}
|
||||||
|
sort.Strings(keys)
|
||||||
|
|
||||||
|
// 构建有序的map
|
||||||
|
order := make(map[string]any)
|
||||||
|
for _, key := range keys {
|
||||||
|
order[key] = item[key]
|
||||||
|
}
|
||||||
|
|
||||||
|
// 转换为JSON字符串
|
||||||
|
bytes, err := json.Marshal(order)
|
||||||
|
if err != nil {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
// 判断是否为空
|
||||||
|
if string(bytes) == "{}" {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
return string(bytes)
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user