Signed-off-by: lxinyu <lxinyu@lxinyu.cn>

This commit is contained in:
lxinyu 2024-11-02 16:56:18 +08:00
commit 4078f1de85
4 changed files with 219 additions and 0 deletions

3
README.md Normal file
View File

@ -0,0 +1,3 @@
存取键值表
json用即可!

18
go.mod Normal file
View File

@ -0,0 +1,18 @@
module cqjzb
go 1.19
require (
gitlab.lxinyu.cn/lxinyu/go/c v0.0.0
gitlab.lxinyu.cn/lxinyu/go/gabs v0.0.0
)
require (
github.com/gogf/gf v1.16.8 // indirect
golang.org/x/text v0.3.7 // indirect
)
replace (
gitlab.lxinyu.cn/lxinyu/go/c => C:\Users\Administrator\go\src\gitlab.lxinyu.cn\lxinyu\go\c
gitlab.lxinyu.cn/lxinyu/go/gabs => C:\Users\Administrator\go\src\gitlab.lxinyu.cn\lxinyu\go\gabs
)

55
go.sum Normal file
View File

@ -0,0 +1,55 @@
github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/clbanning/mxj v1.8.5-0.20200714211355-ff02cfb8ea28 h1:LdXxtjzvZYhhUaonAaAKArG3pyC67kGL3YY+6hGG8G4=
github.com/clbanning/mxj v1.8.5-0.20200714211355-ff02cfb8ea28/go.mod h1:BVjHeAH+rl9rs6f+QIpeRl0tfu10SXn1pUSa5PVGJng=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/fatih/color v1.12.0 h1:mRhaKNwANqRgUBGKmnI5ZxEk7QXmjQeCcuYFMX2bfcc=
github.com/fatih/color v1.12.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM=
github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4=
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE=
github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
github.com/gogf/gf v1.16.8 h1:iVXUB+QPQIYDMMjMdDb6ZINF8xf5bWy54XxAo600zMs=
github.com/gogf/gf v1.16.8/go.mod h1:8Q/kw05nlVRp+4vv7XASBsMe9L1tsVKiGoeP2AHnlkk=
github.com/gomodule/redigo v1.8.5 h1:nRAxCa+SVsyjSBrtZmG/cqb6VbTmuRzpg/PoTFlpumc=
github.com/gomodule/redigo v1.8.5/go.mod h1:P9dn9mFrCBvWhGE1wpxx6fgq7BAeLBk+UUUzlpkBYO0=
github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc=
github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
github.com/grokify/html-strip-tags-go v0.0.1 h1:0fThFwLbW7P/kOiTBs03FsJSV9RM2M/Q/MOnCQxKMo0=
github.com/grokify/html-strip-tags-go v0.0.1/go.mod h1:2Su6romC5/1VXOQMaWL2yb618ARB8iVo6/DR99A6d78=
github.com/mattn/go-colorable v0.1.8 h1:c1ghPdyEDarC70ftn0y+A/Ee++9zz8ljHG1b13eJ0s8=
github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY=
github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0=
github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=
github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec=
github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
go.opentelemetry.io/otel v1.0.0 h1:qTTn6x71GVBvoafHK/yaRUmFzI4LcONZD0/kXxl5PHI=
go.opentelemetry.io/otel v1.0.0/go.mod h1:AjRVh9A5/5DE7S+mZtTR6t8vpKKryam+0lREnfmS4cg=
go.opentelemetry.io/otel/trace v1.0.0 h1:TSBr8GTEtKevYMG/2d21M989r5WJYVimhTHBKVEZuh4=
go.opentelemetry.io/otel/trace v1.0.0/go.mod h1:PXTWqayeFUlJV1YDNhsJYB184+IvAH814St6o6ajzIs=
golang.org/x/net v0.0.0-20210520170846-37e1c6afe023 h1:ADo5wSpq2gqaCGQWzk7S5vd//0iyyLeAratkEoG5dLE=
golang.org/x/net v0.0.0-20210520170846-37e1c6afe023/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210423082822-04245dca01da h1:b3NXsE2LusjYGGjL5bxEVZZORm/YEFFrWFjR8eFrw/c=
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk=
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo=
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

143
存取键值表.go Normal file
View File

@ -0,0 +1,143 @@
// 存取值用的键值对象
// 等同于Java中的HashMap 或 C#中的Dictionary对象
package cqjzb
import (
//. "github.com/duolabmeng6/goefun/core"
//"github.com/duolabmeng6/goefun/os/gabs"
. "git.lxinyu.cn/lxinyu/c"
"git.lxinyu.cn/lxinyu/gabs"
)
type EJson struct {
Json *gabs.Container
}
type H map[string]interface{}
func New存取键值表() *EJson {
x := new(EJson).Init()
return x
}
func NewJson() *EJson {
x := new(EJson).Init()
return x
}
func (this *EJson) Init() *EJson {
this.Json = gabs.New()
return this
}
func (this *EJson) Clear() *EJson {
this.Json = gabs.New()
return this
}
func (this *EJson) Del(key string) error {
return this.Json.DeleteP(key)
}
func (this *EJson) E删除(key string) error {
return this.Json.DeleteP(key)
}
func (this *EJson) GetString(key string) string {
if this.Json.ExistsP(key) {
//str := this.Json.Path(key).Data().(string)
return C到文本(this.Json.Path(key).Data())
}
return ""
}
func (this *EJson) E取文本(key string) string {
return this.GetString(key)
}
func (this *EJson) GetInt(key string) int64 {
if this.Json.ExistsP(key) {
value := C到整数(this.Json.Path(key).Data())
return value
}
return 0
}
func (this *EJson) E取值(key string) int64 {
return this.GetInt(key)
}
func (this *EJson) GetBool(key string) bool {
if this.Json.ExistsP(key) {
value := this.Json.Path(key).Data().(bool)
return value
}
return false
}
func (this *EJson) E取逻辑值(key string) bool {
return this.GetBool(key)
}
func (this *EJson) Set(key string, value interface{}) {
_, _ = this.Json.SetP(value, key)
}
func (this *EJson) SetArray(key string, value interface{}) {
//_, _ = this.Json.ArrayP(key)
_ = this.Json.ArrayAppendP(value, key)
}
func (this *EJson) Data() interface{} {
return this.Json.Data()
}
func (this *EJson) LoadFromJsonFile(filepath string) bool {
data := C读入文件(filepath)
//fmt.Printf(string(data))
var err error
this.Json, err = gabs.ParseJSON(data)
//fmt.Print(err)
return err != nil
}
func (this *EJson) LoadFromJsonString(data string) bool {
var err error
this.Json, err = gabs.ParseJSON(C到字节集(data))
//fmt.Print(err)
return err != nil
}
//调用格式: 〈文本型〉 对象到JSON (逻辑型 是否修饰,[逻辑型 是否UNICODE整数型 主键排序方式]) - E2EE互联网服务器套件2.2.3->存取键值表
//英文名称ToJSON
//内容转换到JSON文本。本命令为初级对象成员命令。
//参数<1>的名称为“是否修饰”类型为“逻辑型bool初始值为“假”。修饰后输出的内容更便于阅读。效率会稍微低一点。
//参数<2>的名称为“是否UNICODE”类型为“逻辑型bool可以被省略。是否输出为UNICODE文本。如果为空则默认为假如果为真则中文等字符将转换为UNICODE并转换为以“\u”开头带四位十六进制文本的内容。
//参数<3>的名称为“主键排序方式”类型为“整数型int可以被省略。当前键值表和所有下级键值表输出时的主键排序方式。[0] 不排序 [1] 正向排序 [2] 反向排序。如果为空则默认为0。
//
//操作系统需求: Windows
func (this *EJson) ToJson(是否修饰 bool) string {
if 是否修饰 {
return this.Json.StringIndent("", " ")
} else {
return this.Json.String()
}
}
func (this *EJson) E到JSON(是否修饰 bool) string {
return this.ToJson(是否修饰)
}
func (this *EJson) GetArrayCount(s string) int {
int, _ := this.Json.ArrayCountP(s)
return int
}
// GetArrayAllData 获取某个数组里面的所有数据
//
// for i, object := range v.GetArrayAllData("array.list") {
// fmt.Printf("i:%s value:%s \n", i, object.Path("avg").Data().(string))
// fmt.Printf("i:%s value:%s \n", i, object.Path("avg").ToString())
// fmt.Printf("i:%s value:%s \n", i, object.Path("avg").ToInt())
// fmt.Printf("i:%s value:%s \n", i, object.GetString("avg"))
// }
func (this *EJson) GetArrayAllData(s string) []*gabs.Container {
objects := this.Json.Path(s).Children()
return objects
}