jsons

package
v1.2.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 8, 2024 License: GPL-3.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrBreakRange = errors.New("break arr or obj range")

ErrBreakRange 停止遍历

Functions

This section is empty.

Types

type Item

type Item struct {
	// contains filtered or unexported fields
}

Item 表示一个 JSON 数据项

func New

func New(rawJson string) (*Item, error)

New 从 json 字符串中初始化成 item 对象

func NewByArr

func NewByArr(arr interface{}) *Item

NewByArr 根据数组初始化 json 数据

func NewByObj

func NewByObj(obj interface{}) *Item

NewByObj 根据对象初始化 json 数据

func NewByVal

func NewByVal(val interface{}) *Item

NewByVal 根据指定普通值初始化 json 数据, 如果是数组或对象类型也会自动转化

func NewEmptyArr

func NewEmptyArr() *Item

NewEmptyArr 初始化一个数组类型的 json 数据

func NewEmptyObj

func NewEmptyObj() *Item

NewEmptyObj 初始化一个对象类型的 json 数据

func (*Item) Append

func (i *Item) Append(values ...*Item)

Append arr 添加属性

func (*Item) Attr

func (i *Item) Attr(key string) *TempItem

Attr 获取对象属性的某个 key 值

func (*Item) DelIdx

func (i *Item) DelIdx(index int)

DelIdx 删除数组元素

func (*Item) DelKey

func (i *Item) DelKey(key string)

DelKey 删除对象中的指定键

func (*Item) Empty

func (i *Item) Empty() bool

Empty 返回当前项是否为空

如果 Type 为 obj, 值为 {}, 返回 true
如果 Type 为 arr, 值为 [], 返回 true
如果 Type 为 val, 值为 nil 或 "", 返回 true
其余情况, 返回 false

func (*Item) FindIdx

func (i *Item) FindIdx(filterFunc func(val *Item) bool) int

FindIdx 在数组中查找符合条件的属性的索引

查找不到符合条件的属性时, 返回 -1

func (*Item) Idx

func (i *Item) Idx(index int) *TempItem

Idx 获取数组属性的指定索引值

func (*Item) Len

func (i *Item) Len() int

Len 返回子项个数

如果 Type 为 obj 和 arr, 返回子项个数
如果 Type 为 val, 返回 0

func (*Item) Map

func (i *Item) Map(mapFunc func(val *Item) interface{}) []interface{}

Map 将数组中的元素按照指定规则映射之后返回一个新数组

func (*Item) Put

func (i *Item) Put(key string, value *Item)

Put obj 设置键值对

func (*Item) PutIdx

func (i *Item) PutIdx(index int, newItem *Item)

PutIdx 设置数组指定索引的 item

func (*Item) RangeArr

func (i *Item) RangeArr(callback func(index int, value *Item) error) error

RangeArr 遍历数组

func (*Item) RangeObj

func (i *Item) RangeObj(callback func(key string, value *Item) error) error

RangeObj 遍历对象

func (*Item) Shuffle

func (i *Item) Shuffle()

Shuffle 打乱一个数组, 只有这个 item 是数组类型时, 才生效

func (*Item) String

func (i *Item) String() string

String 将 item 转换为 json 字符串

func (*Item) Struct

func (i *Item) Struct() interface{}

Struct 将 item 转换为结构体对象

func (*Item) Ti

func (i *Item) Ti() *TempItem

Ti 将当前对象转换为 TempItem 对象

func (*Item) Type

func (i *Item) Type() JsonType

Type 获取 json 项类型

func (*Item) ValuesArr

func (i *Item) ValuesArr() []*Item

ValuesArr 获取数组中的所有值

type JsonType

type JsonType string

JsonType json 属性值类型

const (
	JsonTypeVal JsonType = "val"
	JsonTypeObj JsonType = "obj"
	JsonTypeArr JsonType = "arr"
)

type TempItem

type TempItem struct {
	// contains filtered or unexported fields
}

TempItem 临时暂存 Item 对象

func (*TempItem) Attr

func (ti *TempItem) Attr(key string) *TempItem

Attr 获取对象 item 某个 key 的值 如果需要立即获得 *Item 对象, 需要链式调用 Done() 方法获取

func (*TempItem) Bool

func (ti *TempItem) Bool() (bool, bool)

Bool 获取链式调用后的 bool 值

func (*TempItem) Done

func (ti *TempItem) Done() (*Item, bool)

Done 获取链式调用后的 JSON 值

func (*TempItem) Float

func (ti *TempItem) Float() (float64, bool)

Float 获取链式调用后的 float 值

func (*TempItem) Idx

func (ti *TempItem) Idx(index int) *TempItem

Idx 获取数组 item 某个 index 的值 如果需要立即获得 *Item 对象, 需要链式调用 Done() 方法获取

func (*TempItem) Int

func (ti *TempItem) Int() (int, bool)

Int 获取链式调用后的 int 值

func (*TempItem) Int64

func (ti *TempItem) Int64() (int64, bool)

Int64 获取链式调用后的 int64 值

func (*TempItem) Set

func (ti *TempItem) Set(val interface{}) *TempItem

Set 设置当前链式调用后的 val 值, 类型不匹配时不作更改

func (*TempItem) String

func (ti *TempItem) String() (string, bool)

String 获取链式调用后的 string 值

func (*TempItem) Val

func (ti *TempItem) Val() interface{}

Val 获取链式调用后的 val 值, 类型不匹配时返回 nil

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL