推荐一款工具可以把 json 转成 go 的 struct
go 这种强类型语言,在 decode json 的时候,一般需要定义一套数据结构用于映射,常用的就是 struct,在没有发现这个工具以前,我都是手写,遇到一些比较大的 json 时候,第一写起来比较恶心,第二还容易出错。
在这里推荐一款工具,可以直接使用 json 生成 struct,十分方便,而且是在线的。
https://mholt.github.io/json-to-go/
看个效果图
恩,还不错吧,很方便。
但是有一点要注意,如果生成的 struct 有嵌套匿名 struct(就像效果图里的那样),嵌套的匿名 struct 是不能作为函数返回值的,如果我非要作为函数返回值该怎么办呢?这里推荐使用这个比较简单的方案,把匿名的 struct 变成 不匿名的就行了,示例如下。
type ( KV struct { K1 string `json:"k1"` K2 int `json:"k2"` K3 K3 `json:"k3"` } K3 struct { K1 int `json:"k1"` K2 string `json:"k2"` } ) func test() (k3 K3) { return }
果然,工具就是生产力。
更多架构、PHP、GO相关踩坑实践技巧请关注我的公众号:PHP架构师
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
使用golang写一个redis-cli
使用golang写一个redis-cli 0. redis通信协议 redis的客户端(redis-cli)和服务端(redis-server)的通信是建立在tcp连接之上, 两者之间数据传输的编码解码方式就是所谓的redis通信协议。所以,只要我们的redis-cli实现了这个协议的解析和编码,那么我们就可以完成所有的redis操作。 redis 协议设计的非常易读,也易于实现,关于具体的redis通信协议请参考:通信协议(protocol)。后面我们在实现这个协议的过程中也会简单重复介绍一下具体实现 1. 建立tcp连接 redis客户端和服务端的通信是建立tcp连接之上,所以第一步自然是先建立连接 package main import ( "flag" "log" "net" ) var host string var port string func init() { flag.StringVar(&host, "h", "localhost", "hsot") flag.StringVar(&port, "p", "6379", "port") } func...
- 下一篇
JavaScript编写自己的比特币交易代码
今天我们将编写第一个比特币交易代码。为了实现这一目标,我们将使用名为bitcore的JavaScript库。JavaScript是最流行的现代编程语言,几乎每个开发人员都知道它,因此它使这篇文章具有普遍性并且对更广泛的受众有用。 在继续阅读本文之前,你应该至少掌握有关比特币区块链如何工作的基本技术知识。如果没有,请花几分钟时间阅读区块链简介。如果你有更多的时间,比如几个小时,我建议你阅读掌握比特币。 让我们从一个具有以下依赖关系的新NPM项目开始: [...] "dependencies": { "bitcore-explorers": "^1.0.1", "bitcore-lib": "^0.13.19" } [...] 打开index.js文件并导入bitcore库: var bitcore = require("bitcore-lib"); 要花费比特币我们需要一个包含比特币的地址和一个允许我们花钱的私钥。我们将导入WIF版本的私钥。WIF是Wallet Import Format的缩写。它可以在比特币钱包之间轻松导入密钥。 然后我们将从该私钥创建一个testnet地址: var...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Red5直播服务器,属于Java语言的直播服务器
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Hadoop3单机部署,实现最简伪集群
- CentOS8编译安装MySQL8.0.19
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器