代码拉取完成,页面将自动刷新
package common
import "encoding/json"
// JsonMap 表示 JSON 对象的键值对映射。
type JsonMap map[string]interface{}
// Get 获取指定键的值。
func (js JsonMap) Get(key string) interface{} {
return js[key]
}
// GetInt32 获取 int32 类型的值。
func (js JsonMap) GetInt32(key string) int32 {
return int32(js.Get(key).(float64))
}
// GetInt32IfExist 获取 int32 类型的值,如果键不存在则返回 -1。
func (js JsonMap) GetInt32IfExist(key string) int32 {
if node := js.Get(key); node != nil {
return int32(node.(float64))
} else {
return -1
}
}
// 返回float32类型
func (js JsonMap) GetFloat32(key string) float32 {
return float32(js.Get(key).(float64))
}
// 返回uint16类型
func (js JsonMap) GetUInt16(key string) uint16 {
return uint16(js.Get(key).(float64))
}
// 返回uint32类型
func (js JsonMap) GetUInt32(key string) uint32 {
return uint32(js.Get(key).(float64))
}
func (js JsonMap) GetUInt64(key string) uint64 {
return uint64(js.Get(key).(float64))
}
// 返回int64类型
func (js JsonMap) GetInt64(key string) int64 {
return int64(js.Get(key).(float64))
}
// 返回int64类型,如果没有该字段就返回-1
func (js JsonMap) GetInt64IfExist(key string) int64 {
if node := js.Get(key); node != nil {
return int64(node.(float64))
} else {
return -1
}
}
// 返回bool类型
func (js JsonMap) GetBool(key string) bool {
if js.Get(key) == nil {
return false
}
return js.Get(key).(bool)
}
// 返回string
func (js JsonMap) GetStringNode(key string) string {
return js.Get(key).(string)
}
// 返回一个JsonArray
func (js JsonMap) GetArray(key string) JsonArray {
v := js[key].([]interface{})
return JsonArray(v)
}
// 返回一个JsonArray,错误返回空
func (js JsonMap) GetArrayIfExist(key string) JsonArray {
if v, ok := js[key]; ok {
if result, ok := v.([]interface{}); ok {
return JsonArray(result)
}
}
return JsonArray{}
}
// 返回一个JsonMap
func (js JsonMap) GetMap(key string) JsonMap {
v := js[key].(map[string]interface{})
return JsonMap(v)
}
// 返回[]int
func (js JsonMap) GetIntArray(key string) []int {
return js.GetArray(key).GetIntArray()
}
// 返回 []int32
func (js JsonMap) GetInt32Array(key string) []int32 {
var arr []int32
for _, v := range js.GetArray(key) {
arr = append(arr, int32(v.(float64)))
}
return arr
}
// 返回[]iny32
func (js JsonMap) GetInt32ArrayIfExist(key string) []int32 {
var arr []int32
for _, v := range js.GetArrayIfExist(key) {
arr = append(arr, int32(v.(float64)))
}
return arr
}
func (js JsonMap) GetString(key string) *String {
return NewStringAny(js[key])
}
type JsonArray []interface{}
func (js JsonArray) GetArray(index int) JsonArray {
v := js[index].([]interface{})
return JsonArray(v)
}
func (js JsonArray) GetMap(index int) JsonMap {
v := js[index].(map[string]interface{})
return JsonMap(v)
}
func (js JsonArray) GetIntArray() []int {
result := make([]int, len(js))
for i, v := range js {
result[i] = NewStringAny(v).ToIntV()
}
return result
}
func (js JsonArray) GetStringArray() []string {
result := make([]string, len(js))
for i, v := range js {
result[i] = NewStringAny(v).String()
}
return result
}
func (js JsonArray) GetString(index int) *String {
return NewStringAny(js[index])
}
func (js JsonMap) Marshal() (dAtA []byte, err error) {
return json.Marshal(js)
}
func (js JsonMap) MarshalTo(dAtA []byte) (int, error) {
d, err := js.Marshal()
if err != nil {
return 0, err
}
return copy(dAtA, d), nil
}
func (js JsonMap) Unmarshal(dAtA []byte) error {
return json.Unmarshal(dAtA, &js)
}
func (js JsonMap) Size() (n int) {
jsonBytes, _ := js.Marshal()
return len(jsonBytes)
}
func (js JsonMap) Name() string {
return "JsonMap"
}
func (js JsonMap) Descriptor() ([]byte, []int) {
return nil, nil
}
func (js JsonMap) Reset() {
}
func (js JsonMap) String() string {
jsonBytes, _ := json.MarshalIndent(js, "", " ")
return string(jsonBytes)
}
func (js JsonMap) ProtoMessage() {
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。