json类

package
v0.0.0-...-fcd50c7 Latest Latest
Warning

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

Go to latest
Published: Aug 21, 2024 License: MIT Imports: 22 Imported by: 0

Documentation

Overview

包gjson提供了处理JSON/XML/INI/YAML/TOML数据的便捷API。 md5:ddbf6ad5d309a49c

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

func Json格式到变量

func Json格式到变量(值 interface{}, 选项 ...Options) (interface{}, error)

Json格式到变量 将 JSON 格式的 `data` 解码为 Go 语言变量。 参数 `data` 可以是字节切片或字符串类型。 md5:8c3a611dab2c0896

func Json格式到变量指针

func Json格式到变量指针(值 interface{}, 变量指针 interface{}, 选项 ...Options) (错误 error)

Json格式到变量指针 将json格式的 `data` 解码到指定的golang变量 `v`。 参数 `data` 可以是字节切片或字符串类型。 参数 `v` 应该是一个指针类型。 md5:bc0dc16b58d95bda

func MarshalIndent别名

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

MarshalIndent别名 是 json.MarshalIndent别名 的别名,以适应使用 json.MarshalIndent别名 函数的习惯。 md5:285efc00996caf06

func Marshal别名

func Marshal别名(v interface{}) (marshaledBytes []byte, err error)

Marshal别名 是 Encode 函数的别名,目的是为了适应 json.Marshal别名/Unmarshal 函数的习惯用法。 md5:ff4e462ef9c849f2

func Unmarshal别名

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

Unmarshal别名是DecodeTo的别名,以适应json.Marshal/Unmarshal别名函数的习惯。 md5:dcb4ee0dfccdb10a

func X变量到json字节集

func X变量到json字节集(值 interface{}) ([]byte, error)

X变量到json字节集 将任何 Go 语言变量 `value` 编码为 JSON 字节。 md5:25418d619ec52d3a

func X变量到json字节集PANI

func X变量到json字节集PANI(值 interface{}) []byte

X变量到json字节集PANI 的行为与 Encode 相同,但如果发生任何错误,它会直接 panic。 md5:baf6676afd45559a

func X变量到json文本

func X变量到json文本(值 interface{}) (string, error)

X变量到json文本 将任何 Go 语言变量 `value` 编码为 JSON 字符串。 md5:b54e604cb403b55a

func X变量到json文本PANI

func X变量到json文本PANI(值 interface{}) string

X变量到json文本PANI 将任何 Go 语言变量 `value` 编码为 JSON 字符串。如果发生任何错误,它将引发 panic。 md5:05f6a19afa24c836

func X是否为有效json

func X是否为有效json(值 interface{}) bool

X是否为有效json 检查 `data` 是否是有效的 JSON 数据类型。参数 `data` 指定 JSON 格式的数据,可以是字节或字符串类型。 md5:a1bbf790f78e4608

func X检查类型

func X检查类型(待判断值 ContentType) bool

X检查类型 检查并返回给定的 `dataType` 是否是用于加载的有效数据类型。 md5:3cc6cab5a2631a3e

Types

type ContentType

type ContentType string
const (
	ContentTypeJson       ContentType = `json`
	ContentTypeJs         ContentType = `js`
	ContentTypeXml        ContentType = `xml`
	ContentTypeIni        ContentType = `ini`
	ContentTypeYaml       ContentType = `yaml`
	ContentTypeYml        ContentType = `yml`
	ContentTypeToml       ContentType = `toml`
	ContentTypeProperties ContentType = `properties`
)

type Json

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

Json 是自定义的JSON结构体。 md5:764b883e7cf79da7

func X创建

func X创建(值 interface{}, 并发安全 ...bool) *Json

X创建 使用任何类型的`data`创建一个Json对象,但为了数据访问的原因,`data`应该是map或slice, 否则将失去意义。

参数`safe`指定是否在并发安全的上下文中使用此Json对象,默认值为false。 md5:b84f401db24e69d8

func X创建并按类型标签

func X创建并按类型标签(值 interface{}, 类型标签 string, 并发安全 ...bool) *Json

X创建并按类型标签 创建一个Json对象,可以包含任何类型的`data`,但出于数据访问的原因,`data`应该是一个map或切片,否则将没有意义。

参数`tags`用于指定结构体转换为map的优先标签,多个标签之间用逗号分隔。

参数`safe`表示是否在并发安全上下文中使用这个Json对象,默认为false。 md5:2558f08f4f082a16

func X创建并按选项

func X创建并按选项(值 interface{}, 选项 Options) *Json

X创建并按选项使用任何类型的'data'创建一个Json对象,但出于数据访问的原因,`data`应该是map或切片,否则将没有意义。 md5:48be1828a6556518

func X加载Properties

func X加载Properties(值 interface{}, 并发安全 ...bool) (*Json, error)

X加载Properties 从给定的TOML格式内容创建一个Json对象。 md5:aacff07e57605d82

func X加载Toml

func X加载Toml(值 interface{}, 并发安全 ...bool) (*Json, error)

X加载Toml 从给定的TOML格式内容创建一个Json对象。 md5:a27ac84d2a7e5a70

func X加载Yaml

func X加载Yaml(值 interface{}, 并发安全 ...bool) (*Json, error)

X加载Yaml 根据给定的 YAML 格式内容创建一个 Json 对象。 md5:d810aac213716b5a

func X加载ini

func X加载ini(值 interface{}, 并发安全 ...bool) (*Json, error)

X加载ini 从给定的INI格式内容创建一个Json对象。 md5:bf3225da0be4c26b

func X加载json

func X加载json(值 interface{}, 并发安全 ...bool) (*Json, error)

X加载json 从给定的JSON格式内容创建一个Json对象。 md5:1f41cbc0a35bd390

func X加载xml

func X加载xml(值 interface{}, 并发安全 ...bool) (*Json, error)

X加载xml 从给定的XML格式内容创建一个Json对象。 md5:a170d56aa371a2bb

func X加载并按格式

func X加载并按格式(类型标签 ContentType, 值 interface{}, 并发安全 ...bool) (*Json, error)

X加载并按格式 根据给定的类型和内容创建一个 JSON 对象,支持以下数据内容类型: JSON, XML, INI, YAML 和 TOML. md5:7db5bd0b429fea01

func X加载并按选项

func X加载并按选项(值 interface{}, 选项 Options) (*Json, error)

X加载并按选项 根据给定的 JSON 格式内容和选项创建一个 Json 对象。 md5:77290b5f994f3ff1

func X加载并自动识别格式

func X加载并自动识别格式(值 interface{}, 并发安全 ...bool) (*Json, error)

X加载并自动识别格式 根据给定的内容创建一个Json对象,它会自动检查`content`的数据类型, 支持如下数据内容类型: JSON、XML、INI、YAML和TOML。 md5:e930374f4ac3b32e

func X加载文件

func X加载文件(路径 string, 并发安全 ...bool) (*Json, error)

X加载文件 从指定的文件`path`加载内容,并根据其内容创建一个Json对象。 md5:fc26d8aa3d537173

func X解码到json

func X解码到json(值 interface{}, 选项 ...Options) (*Json, error)

X解码到json 将JSON格式的`data`编码为一个Json对象。 参数`data`可以是字节或字符串类型。 md5:f1745bf8c9553699

func (*Json) Interface

func (j *Json) Interface() interface{}

Interface 返回 json 值。 md5:63120da1c18a889c

Example
package main

import (
	"fmt"

	gjson "github.com/888go/goframe/encoding/gjson"
)

func main() {
	type BaseInfo struct {
		Name string
		Age  int
	}

	info := BaseInfo{
		Name: "John",
		Age:  18,
	}

	j := gjson.X创建(info)
	fmt.Println(j.Interface())

	var nilJ *gjson.Json = nil
	fmt.Println(nilJ.Interface())

}
Output:
map[Age:18 Name:John]
<nil>

func (Json) MarshalJSON

func (j Json) MarshalJSON() ([]byte, error)

MarshalJSON 实现了接口 MarshalJSON 以供 json.Marshal 使用。 md5:43c3b36e60a18f9a

Example
package main

import (
	"fmt"

	gjson "github.com/888go/goframe/encoding/gjson"
)

func main() {
	type BaseInfo struct {
		Name string
		Age  int
	}

	info := BaseInfo{
		Name: "John",
		Age:  18,
	}

	j := gjson.X创建(info)
	jsonBytes, _ := j.MarshalJSON()
	fmt.Println(string(jsonBytes))

}
Output:
{"Age":18,"Name":"John"}

func (*Json) String

func (j *Json) String() string

String 返回当前Json对象作为字符串。 md5:741610441066450a

func (*Json) UnmarshalJSON

func (j *Json) UnmarshalJSON(b []byte) error

UnmarshalJSON实现了json.Unmarshal接口的UnmarshalJSON方法。 md5:f6766b88cf3d63c2

Example
package main

import (
	"fmt"

	gjson "github.com/888go/goframe/encoding/gjson"
)

func main() {
	jsonStr := `{"Age":18,"Name":"John"}`

	j := gjson.X创建("")
	j.UnmarshalJSON([]byte(jsonStr))
	fmt.Println(j.X取Map())

}
Output:
map[Age:18 Name:John]

func (*Json) UnmarshalValue

func (j *Json) UnmarshalValue(value interface{}) error

UnmarshalValue 是一个接口实现,用于将任何类型的值设置为 Json。 md5:4cedac254443f4c3

func (*Json) X删除

func (j *Json) X删除(表达式 string) error

X删除 删除具有指定`pattern`的值。它支持通过字符分隔符(默认为`.`)进行层次数据访问。 md5:a8bd1b8b0e8d7d8e

func (*Json) X删除PANI

func (j *Json) X删除PANI(表达式 string)

X删除PANI 的行为与 Remove 相同,但如果发生任何错误,它会直接 panic。 md5:ad4ac7324486398a

func (*Json) X加入

func (j *Json) X加入(表达式 string, 值 interface{}) error

X加入 将指定的 `pattern` 所引用的值追加到目标值(应该是切片类型)中。 md5:5b8e7f4c493419ba

func (*Json) X加入PANI

func (j *Json) X加入PANI(表达式 string, 值 interface{})

X加入PANI 的行为与 Append 相同,但如果发生任何错误,它会直接 panic。 md5:3a0acd5a244f264f

func (*Json) X取Map

func (j *Json) X取Map() map[string]interface{}

X取Map 将当前的 Json 对象转换为 map[string]interface{}。 如果转换失败,它将返回 nil。 md5:599d2c152000d26b

func (*Json) X取MapStrAny

func (j *Json) X取MapStrAny() map[string]interface{}

X取MapStrAny 实现了接口函数 X取MapStrAny()。 md5:e07c56a48f2ed248

func (*Json) X取TOML字节集

func (j *Json) X取TOML字节集() ([]byte, error)

func (*Json) X取TOML字节集PANI

func (j *Json) X取TOML字节集PANI() []byte

func (*Json) X取TOML文本

func (j *Json) X取TOML文本() (string, error)

func (*Json) X取TOML文本PANI

func (j *Json) X取TOML文本PANI() string

func (*Json) X取YAML字节集

func (j *Json) X取YAML字节集() ([]byte, error)

func (*Json) X取YAML字节集PANI

func (j *Json) X取YAML字节集PANI() []byte

func (*Json) X取YAML字节集并格式化

func (j *Json) X取YAML字节集并格式化(缩进 string) ([]byte, error)

func (*Json) X取YAML文本

func (j *Json) X取YAML文本() (string, error)

func (*Json) X取YAML文本PANI

func (j *Json) X取YAML文本PANI() string

func (*Json) X取any数组

func (j *Json) X取any数组() []interface{}

X取any数组 实现了接口函数 X取any数组()。 md5:b4dff925202b8b35

func (*Json) X取ini字节集

func (j *Json) X取ini字节集() ([]byte, error)

X取ini字节集 json to ini

func (*Json) X取ini字节集PANI

func (j *Json) X取ini字节集PANI() []byte

func (*Json) X取ini文本

func (j *Json) X取ini文本() (string, error)

X取ini文本 将ini格式转换为字符串. md5:954c17725442fbb6

func (*Json) X取ini文本PANI

func (j *Json) X取ini文本PANI() string

X取ini文本PANI .

func (*Json) X取json字节集

func (j *Json) X取json字节集() ([]byte, error)

func (*Json) X取json字节集PANI

func (j *Json) X取json字节集PANI() []byte

func (*Json) X取json字节集并格式化

func (j *Json) X取json字节集并格式化() ([]byte, error)

func (*Json) X取json字节集并格式化PANI

func (j *Json) X取json字节集并格式化PANI() []byte

func (*Json) X取json文本

func (j *Json) X取json文本() (string, error)

func (*Json) X取json文本PANI

func (j *Json) X取json文本PANI() string

func (*Json) X取json文本并格式化

func (j *Json) X取json文本并格式化() (string, error)

func (*Json) X取json文本并格式化PANI

func (j *Json) X取json文本并格式化PANI() string

func (*Json) X取properties字节集

func (j *Json) X取properties字节集() ([]byte, error)

======================================================================== 属性 ======================================================================== 将json格式的属性转换为properties格式 md5:83a506c62c95394b

func (*Json) X取properties字节集PANI

func (j *Json) X取properties字节集PANI() []byte

func (*Json) X取properties文本

func (j *Json) X取properties文本() (string, error)

TopropertiesString 将属性转换为字符串. md5:4e7ae41f91f6945a

func (*Json) X取properties文本PANI

func (j *Json) X取properties文本PANI() string

MustTopropertiesString

func (*Json) X取xml字节集

func (j *Json) X取xml字节集(rootTag ...string) ([]byte, error)

func (*Json) X取xml字节集PANI

func (j *Json) X取xml字节集PANI(rootTag ...string) []byte

func (*Json) X取xml字节集并格式化

func (j *Json) X取xml字节集并格式化(rootTag ...string) ([]byte, error)

func (*Json) X取xml字节集并格式化PANI

func (j *Json) X取xml字节集并格式化PANI(rootTag ...string) []byte

func (*Json) X取xml文本

func (j *Json) X取xml文本(rootTag ...string) (string, error)

func (*Json) X取xml文本PANI

func (j *Json) X取xml文本PANI(rootTag ...string) string

func (*Json) X取xml文本并格式化

func (j *Json) X取xml文本并格式化(rootTag ...string) (string, error)

func (*Json) X取xml文本并格式化PANI

func (j *Json) X取xml文本并格式化PANI(rootTag ...string) string

func (*Json) X取值

func (j *Json) X取值(表达式 string, 默认值 ...interface{}) *gvar.Var

X取值 通过指定的`pattern`获取并返回值。 如果`pattern`为".",它将返回当前Json对象的所有值。 如果根据`pattern`没有找到值,它将返回nil。

我们也可以在`pattern`中通过索引数字来访问切片的元素,例如: "list.10", "array.0.name", "array.0.1.id"。

如果没有为`pattern`找到值,它将返回由`def`指定的默认值。 md5:f56f76d635296903

func (*Json) X取对象

func (j *Json) X取对象(表达式 string, 默认值 ...interface{}) *Json

X取对象 通过指定的`pattern`获取值,并将其转换为一个非并发安全的Json对象。 md5:e0f60541ee6017b5

func (*Json) X取对象Map

func (j *Json) X取对象Map(表达式 string, 默认值 ...interface{}) map[string]*Json

X取对象Map 通过指定的`pattern`获取值, 并将其转换为非并发安全的Json对象映射。 md5:d549d238d186a4e0

func (*Json) X取对象数组

func (j *Json) X取对象数组(表达式 string, 默认值 ...interface{}) []*Json

X取对象数组 通过指定的`pattern`获取值,并将其转换为一个不并发安全的Json对象切片。 md5:1bd75964e1b32ed2

func (*Json) X取数组

func (j *Json) X取数组() []interface{}

X取数组 将当前Json对象转换为 []interface{} 类型。如果转换失败,它将返回nil。 md5:8b3042473c46995f

func (*Json) X取文本

func (j *Json) X取文本() string

zj:

func (*Json) X取泛型类

func (j *Json) X取泛型类() *gvar.Var

X取泛型类将json值作为*gvar.X取泛型类返回。 md5:fcfd99090165a7b5

func (*Json) X取结构体指针

func (j *Json) X取结构体指针(结构体指针 interface{}, 名称映射 ...map[string]string) error

X取结构体指针会根据参数类型自动调用Struct或Structs函数,并通过`pointer`实现转换。 md5:afdb5ab720fddc3b

func (*Json) X取长度

func (j *Json) X取长度(表达式 string) int

X取长度 返回由指定 `pattern` 定义的值的长度/大小。目标值应该是切片或映射类型。如果找不到目标值或者其类型无效,它将返回 -1。 md5:f929eb27a0ef1a36

func (*Json) X是否为Nil

func (j *Json) X是否为Nil() bool

X是否为Nil 检查指针 `j` 所指向的值是否为 nil。 md5:669f952cb58d64ce

func (*Json) X是否存在

func (j *Json) X是否存在(表达式 string) bool

X是否存在 检查是否存在指定的 `pattern` 值。 md5:4f248b6aebb74d05

func (*Json) X设置值

func (j *Json) X设置值(pattern string, value interface{}) error

X设置值 使用指定的 `pattern` 设置值。 它支持通过字符分隔符(默认为'.')进行层次数据访问。 md5:85400f8aa43895d6

func (*Json) X设置值PANI

func (j *Json) X设置值PANI(表达式 string, 值 interface{})

X设置值PANI 执行与 Set 相同的操作,但如果发生任何错误,它将引发恐慌。 md5:89753cb5f56f60cc

func (*Json) X设置分层冲突检查

func (j *Json) X设置分层冲突检查(启用 bool)

X设置分层冲突检查 用于启用或禁用层次数据访问时的暴力检查。 md5:b2fa0bb88e62957d

func (*Json) X设置参数分隔符

func (j *Json) X设置参数分隔符(分隔符 byte)

X设置参数分隔符 设置用于层次数据访问的分隔符字符。 md5:99655266409bea6a

func (*Json) X调试输出

func (j *Json) X调试输出()

X调试输出 打印当前的Json对象,使其更便于人工阅读。 md5:c8c6bbdb40fa6383

type Options

type Options struct {
	Safe      bool        // 标记此对象适用于并发安全使用。这尤其适用于 Json 对象的创建。 md5:59d439559fecdc34
	Tags      string      // 自定义解码优先级标签,例如:"json,yaml,MyTag"。这主要用于将结构体解析为Json对象。 md5:486cf257ddd06463
	Type      ContentType // 类型指定了数据内容类型,例如:json、xml、yaml、toml、ini等。 md5:afbae78560edde30
	StrNumber bool        // StrNumber 使得 Decoder 将数字解码为 interface{}` 作为字符串,而不是 float64。 md5:32e44e32c3cc37cc
}

创建/加载Json对象的选项。 md5:d8614ea5dc358e89

Jump to

Keyboard shortcuts

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