vbody

package module
v2.2.1 Latest Latest
Warning

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

Go to latest
Published: Feb 20, 2023 License: Apache-2.0 Imports: 9 Imported by: 0

README

vbody Build Status

golang vbody,在web的请求与响应中,body使用的JSON数据格式。

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Change

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

func (*Change) Delete

func (T *Change) Delete(key any)

func (*Change) Set

func (T *Change) Set(key any, val any)

func (*Change) Update

func (T *Change) Update(key any, val any)

type Reader

type Reader struct {
	M map[string]any // 记录对象
	A []any          // 记录数组
	// contains filtered or unexported fields
}

func NewReader

func NewReader(i any) *Reader

读取

i any	数据,支持map,array,slice,io.Reader, *string,[]byte。你也可以对 Reader.M 或 Reader.A 进行赋值。
*Reader			读取对象

func (*Reader) Any

func (T *Reader) Any(key any, def ...any) any

读取值是接口类型的

key any			键名
def any		默认值
any			读取的接口类型,需要转换

例如:{"a":"b"} Interface("a","c") == "b" 或 Interface("b","c") == "c"

func (*Reader) Bool

func (T *Reader) Bool(key any, def ...bool) bool

读取值是布尔值类型的

key any, def bool	键名,默认值
bool			读取的布尔值

例如:{"a":true} Bool("a",false) == true

func (*Reader) Change

func (T *Reader) Change() *Change

变更

func (*Reader) Decode added in v2.2.0

func (T *Reader) Decode(r io.Reader) error

从r读取字节串并解析成Reader

r io.Reader	字节串读接口
error		错误

func (*Reader) Encode added in v2.2.0

func (T *Reader) Encode(w io.Writer) error

将M转为json写入到w中

w io.Writer 字节串写接口
error		错误

func (*Reader) Equal

func (T *Reader) Equal(eq any, keys ...any) bool

判断值是否等于eq

eq any				判断keys是否等于
keys ... any		支持多个键名判断
bool				值等于eq,返回true

例如:{"a":"b"}  Equal("","a") == false 或 Equal("b","a") == true

func (*Reader) Err

func (T *Reader) Err() error

错误

error	如果 Reader.Reset 重置有误,可以从这里得到相关错误。

func (*Reader) Float64

func (T *Reader) Float64(key any, def ...float64) float64

读取值是浮点数类型的

key, def float64	键名,默认值
float64				读取的浮点数

例如:{"a":123} Float64("a",123) == 123

func (*Reader) Has

func (T *Reader) Has(keys ...any) bool

检查键是否存在

keys ...any		键名,如果需要判断切片的长度,可以传入int类型。当然也可以这样 len(Reader.A)
bool					存在,返回true

例如:{"a":"b"} Has("a") == true 或 Has("b") == false

func (*Reader) Int64

func (T *Reader) Int64(key any, def ...int64) int64

读取值是整数类型的

key, def int64	键名,默认值
int64				读取的整数

例如:{"a":123} Int64("a",0) == 123 或 Int64("b",456) == 456

func (*Reader) IsNil

func (T *Reader) IsNil(keys ...any) bool

是nil值

keys ...any		键名,如果需要判断切片的长度,可以传入int类型。
bool			是nil值,返回true

func (*Reader) MarshalJSON

func (T *Reader) MarshalJSON() ([]byte, error)

Reader转字节串

[]byte	字节串,如:[]byte(`{"A":1}`)
error	错误

func (*Reader) NewAny

func (T *Reader) NewAny(key any, def ...any) *Reader

读取值是接口类型的

key any			键名
def any		默认值
any			读取的接口类型,需要转换

例如:{"a":{"b":123}} NewInterface("a",*{"b":456}) == *{"b":123} 或 NewInterface("b",*{"b":456}) == *{"b":456}

func (*Reader) NewSlice

func (T *Reader) NewSlice(key any, def ...[]any) *Reader

读取值是数组类型的

key any				键名
def []any		默认值
[]any			读取的数组类型

例如:{"a":[1,3,4,5,6]} Array("a",[7,8,9,0]) == *[1,3,4,5,6] 或 Array("b",[7,8,9,0]) == *[7,8,9,0]

func (*Reader) Reset

func (T *Reader) Reset(i any) error

重置,如果需要重置为空,需要先调用一次.Reset(nil)

i any	支持格式,包括:map,array,slice,io.Reader,*string, []byte
error			错误

func (*Reader) Slice

func (T *Reader) Slice(key any, def ...[]any) []any

读取值是数组类型的

key any				键名
def []any		默认值
[]any			读取的数组类型

例如:{"a":[1,3,4,5,6]} Array("a",[7,8,9,0]) == [1,3,4,5,6] 或 Array("b",[7,8,9,0]) == [7,8,9,0]

func (*Reader) String

func (T *Reader) String(key any, def ...string) string

读取值是字符串类型的

key, def string	键名,默认值
string			读取的字符串

例如:{"a":"b"} String("a","") == "b"

func (*Reader) UnmarshalJSON

func (T *Reader) UnmarshalJSON(data []byte) error

字节串解析成Reader

data []byte	字节串,如:[]byte(`{"A":1}`)
error		错误

type Writer

type Writer struct {
	M map[string]any // 写记录
	// contains filtered or unexported fields
}

func NewWriter

func NewWriter() *Writer

写,这是http响应的一种特定格式。采用格式为:{"Code":0,"Message":"内容","Result":[{...},{...}]}

func (*Writer) Code added in v2.1.0

func (T *Writer) Code(d int) *Writer

状态

d int	状态码

func (*Writer) Message

func (T *Writer) Message(s any) *Writer

提示内容

s any	内容

func (*Writer) Messagef

func (T *Writer) Messagef(f string, a ...any) *Writer

提示内容,支持fmt.Sprintf 格式

f string			格式
a ...any	参数

func (*Writer) Result

func (T *Writer) Result(key string, val any) *Writer

设置结果

key string		键名
val any	值

func (*Writer) SetResult

func (T *Writer) SetResult(val any) *Writer

设置结果

val any	结果

func (*Writer) String

func (T *Writer) String() string

字符串json格式

string		json格式

func (*Writer) WriteTo

func (T *Writer) WriteTo(w io.Writer) (n int64, err error)

写入到w

w io.Writer	写入接口
n int64		写入长度
err error	错误

Jump to

Keyboard shortcuts

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