jsonKit

package
v3.0.98 Latest Latest
Warning

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

Go to latest
Published: May 29, 2024 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AssertJson added in v3.0.86

func AssertJson(data []byte, paramName string) error

func AssertJsonString added in v3.0.86

func AssertJsonString(jsonStr string, paramName string) error

func GetLibrary

func GetLibrary() string

func IsJson added in v3.0.83

func IsJson(data []byte) (rst bool)

IsJson 简单的检测,并不一定准确.

PS: 这种方法可以粗略地判断字符串是否是 JSON 格式,但不如反序列化方法那样严谨。它不能处理所有的边缘情况,比如嵌套错误或格式错误的 JSON。为了更准确的判断,仍建议使用反序列化方法。

func IsJsonString added in v3.0.83

func IsJsonString(str string) (rst bool)

IsJsonString 简单的检测,并不一定准确.

PS: 这种方法可以粗略地判断字符串是否是 JSON 格式,但不如反序列化方法那样严谨。它不能处理所有的边缘情况,比如嵌套错误或格式错误的 JSON。为了更准确的判断,仍建议使用反序列化方法。

func Marshal

func Marshal(v interface{}) ([]byte, error)

func MarshalIndent

func MarshalIndent(v interface{}, prefix, indent string) ([]byte, error)

MarshalIndent

@param indent 为了兼容性,用" "(4个空格)替代"\t"

func MarshalIndentToString

func MarshalIndentToString(v interface{}, prefix, indent string) (string, error)

MarshalIndentToString

@param indent 为了兼容性,用" "(4个空格)替代"\t"

func MarshalIndentToStringWithAPI

func MarshalIndentToStringWithAPI(api API, v interface{}, prefix, indent string) (string, error)

MarshalIndentToStringWithAPI

@param indent 为了兼容性,用" "(4个空格)替代"\t"

func MarshalIndentWithAPI

func MarshalIndentWithAPI(api API, v interface{}, prefix, indent string) ([]byte, error)

MarshalIndentWithAPI

@param indent 为了兼容性,用" "(4个空格)替代"\t"

func MarshalToFile

func MarshalToFile(in interface{}, filePath string, perm os.FileMode) error

MarshalToFile

PS: (1) 对 传参filePath 的验证和断言在 fileKit.WriteToFile 里面; (2) 写入文件的json带有 indent.

@param in 建议为结构体实例指针 || map实例 || slice实例 @param filePath (1) .json 格式的文件

(2) 不存在的话,会创建一个新的文件
(3) 存在且是个文件的话,会 "覆盖" 掉旧的(并不会加到该文件的最后面)

func MarshalToFileWithAPI

func MarshalToFileWithAPI(api API, in interface{}, filePath string, perm os.FileMode) error

MarshalToFileWithAPI

PS: (1) 对 传参filePath 的验证和断言在 fileKit.WriteToFile 里面; (2) 写入文件的json带有 indent.

@param in 建议为结构体实例指针 || map实例 || slice实例 @param filePath (1) .json 格式的文件

(2) 不存在的话,会创建一个新的文件
(3) 存在且是个文件的话,会 "覆盖" 掉旧的(并不会加到该文件的最后面)

func MarshalToString

func MarshalToString(v interface{}) (string, error)

MarshalToString

e.g.

fmt.Println(jsonKit.MarshalToString(nil)) // null <nil>

func MarshalToStringWithAPI

func MarshalToStringWithAPI(api API, v interface{}) (string, error)

func MarshalWithAPI

func MarshalWithAPI(api API, v interface{}) ([]byte, error)

func Unmarshal

func Unmarshal(data []byte, v interface{}) error

Unmarshal 反序列化

@param v (1) 必须是指针(结构体实例指针 || map实例指针 || slice实例指针);

(2) 如果为 slice 或 map 类型,值可以为nil.

func UnmarshalFromString

func UnmarshalFromString(str string, v interface{}) error

func UnmarshalFromStringWithAPI

func UnmarshalFromStringWithAPI(api API, str string, v interface{}) error

func UnmarshalWithAPI

func UnmarshalWithAPI(api API, data []byte, v interface{}) error

Types

type API

type API interface {
	Marshal(v interface{}) ([]byte, error)

	MarshalIndent(v interface{}, prefix, indent string) ([]byte, error)

	MarshalToString(v interface{}) (string, error)

	Unmarshal(data []byte, v interface{}) error

	UnmarshalFromString(str string, v interface{}) error
}

func GetDefaultApi

func GetDefaultApi() API

func GetStdApi

func GetStdApi() API

Jump to

Keyboard shortcuts

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