社区
其他技术讨论专区
帖子详情
golang 怎样根据字符串创建struct
weixin_38051062
2019-09-20 10:48:54
再写grpc网关的时候, 需要大量重复代码, 我想把整个代码统一化,
有个需求, 现在有一个包叫做package1, 里面两个struct, 分别为structA, structB。
我现在想直接通过字符串创建struct实例, 比如传入“structA” 返回structA对象(interface类型), 传入“structB” 返回structB对象(interface类型)
这样需要怎样实现, 说下思路或者实现的包什么的都可以。
...全文
172
2
打赏
收藏
golang 怎样根据字符串创建struct
再写grpc网关的时候, 需要大量重复代码, 我想把整个代码统一化, 有个需求, 现在有一个包叫做package1, 里面两个struct, 分别为structA, structB。 我现在想直接通过字符串创建struct实例, 比如传入“structA” 返回structA对象(interface类型), 传入“structB” 返回structB对象(interface类型) 这样需要怎样实现, 说下思路或者实现的包什么的都可以。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
weixin_38067327
2019-09-20
打赏
举报
回复
https://studygolang.com/topics/9867 这个能帮到你,xml反序列化,里面用的注册工厂模式
weixin_38087237
2019-09-20
打赏
举报
回复
看一下sql包的实现
Go-Faker会根据您的Go(
Golang
)
Struct
生成一个假数据
Faker会根据您的Go (
Golang
)
Struct
生成一个假数据
golang
struct
实现 interface的方法
主要介绍了
golang
struct
实现 interface的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
golang
的json处理库json4g.zip
json4g 是
golang
的 json处理库,方便处理结构复杂的json文档。json4g 提供了json的简便出来方法方法介绍1,LoadByString(string) 参数为json
字符串
,返回 JsonNode 对象指针2,NowJsonNode(string,interface{}) 参数节点名3,NowJsonNodeByString(string,string) 参数 json
字符串
如: {"a":"b","c":123}4,AddNode(*JsonNode) 为某节点增加子节点 5,DelNode(string) 某节点 删除指定名称子节点6,ToJsonNode() 转JsonNode 指针对象7,SetValue() 节点设置 节点值,可以为 数字,
字符串
,bool值,数组8,GetNodeByPath(string) 通过路径查询 节点 如: {"a":{"b":{"c":123,"d":true}}} 节点c对象GetNodeByPath("a.b.c")9,GetNodeByName(string) 通过节点名 查询 节点对象10,ToString() JsonNode对象转换为
字符串
具体操作请参考 测试类 json4g_test.go部分方法示例:jsonStr := `{"STRING": "abcd","NUMBER":123456,"BOOL":false,"
STRUCT
":{"a":{"b":12345}},"array":["a","b","c"]}`node, err := LoadByString(jsonStr)if err == nil {jnode := node.GetNodeByPath("
STRUCT
.a.b")fmt.Println("
STRUCT
.a.b>>>>>>>", jnode.ValueNumber)}node.DelNode("NUMBER") //删除node.AddNode(NowJsonNode("name", "value")) //增加node.ToString() // 转化为
字符串
有问题或建议欢迎 email : donnie4w@gmail.com 标签:json4g
支持YAML,JSON,TOML,Shell环境的
Golang
配置工具-
Golang
开发
支持YAML,JSON,TOML,Shell环境的Configor
Golang
配置工具(支持Go 1.10+)使用包主要导入(“ fmt”“ github.com/jinzhu/configor”)var Config =
struct
{APPName string`d Configor
Golang
Configuration支持YAML,JSON,TOML,Shell环境的工具(支持Go 1.10+)使用包主要导入(“ fmt”“ github.com/jinzhu/configor”)var Config =
struct
{APPName
字符串
`default:“ app name”` DB
struct
{名称
字符串
用户
字符串
`default:“ root”`密码
字符串
`required:“ true” env:“ DBPassword”`端口uint`default:“ 3306”`} Contacts []
struct
{Name string电子邮件
字符串
`required: “ true”`}} {} func main(){configor.Loa
goprint:打印格式
struct
,slice,map,anyvar
goprint
GoLang
Print API您可以打印任何变量(
字符串
,结构,切片,映射,ptr等) 例子: package main import ( "github.com/MouseSun/goprint" ) type Test
Struct
1
struct
{ Id int32 Value string } type Test
Struct
struct
{ Id int32 Value string St Test
Struct
1 } func main () { test := Test
Struct
{ 1 , "hello
struct
" , Test
Struct
1 { 2 , "hello
struct
2" }} goprint . P ( "test tag" , test ) }
其他技术讨论专区
474
社区成员
791,136
社区内容
发帖
与我相关
我的任务
其他技术讨论专区
其他技术讨论专区
复制链接
扫一扫
分享
社区描述
其他技术讨论专区
其他
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章