Goland 使用教程 01:高效的处理 json 文本

yudotyang · · 589 次点击 · · 开始浏览    

大家好,我是Go学堂的渔夫子。 工欲善其事,必先利其器。今天我们讲解Goland是如何高效的处理json的。 ### 01 将json直接转换成结构体 首先我们有一个段json格式的数据如下,看下Goland是如何快捷的转换成结构体的。 ```json { "email": "noah.poulsen@example.com", "gender": "male", "first_name": "noah", "last_name": "poulsen", "location": { "street": "7998 oddenvej", "city": "nr åby", "state": "syddanmark", "postcode": 73617 }, "username": "purplesnake503", "password": "zelda", "picture": "img/41.jpg" } ``` - 1.1 使用**⌘ Cmd + C** 复制该段json文本 - 1.2 在Goland的文本编辑区域使用**⌘ Cmd + V** 粘贴刚才复制的json文本,这时,会弹出一个询问是否从JSON中生成Go类型的对话框,直接选择 yes。如下图: ![](https://gocn.oss-cn-shanghai.aliyuncs.com/photo/yudotyang/3d9d0925-1364-4243-9bc1-f4026d550214.png?x-oss-process=image%2Fresize%2Cw_1920) - 1.3 对结构体进行命名。将json文本转换成结构体后,鼠标会自动定位到结构体名字的位置,也就是初始状态是T的位置。这时,我们改变结构体的名字为User,然后按 Esc键完成对结构体名字的编辑。如下图: ![](https://gocn.oss-cn-shanghai.aliyuncs.com/photo/yudotyang/5c5f8643-54c7-4e5b-8f0d-2eb19cc1d4e7.png?x-oss-process=image%2Fresize%2Cw_1920) ### 02 将结构体内的内嵌结构体定义移动到外部 我们在上节看到,Location结构体的定义是在User结构体内部的,如果我们想将Location结构体的定义移动到User的外面该如何操作呢? - 2.1 首先将鼠标移动到Location的位置,然后使用Ctr + T快捷键操作,调出"Refactor This"菜单。如下图: ​ ![](https://gocn.oss-cn-shanghai.aliyuncs.com/photo/yudotyang/f618e5d4-7dd9-4f20-8134-2d6c6a2b0997.png?x-oss-process=image%2Fresize%2Cw_1920) - 2.2 在refactor This菜单中,我们发现有很多项,我们选择其中的"introduce type..."(引入类型...),其他项我们在后续使用中再逐一介绍。选择了该菜单项后,Location字段的结构体就会挪到User外面,并要求输入结构体名称。如下图: ![](https://gocn.oss-cn-shanghai.aliyuncs.com/photo/yudotyang/6f38cfc2-e6e1-40f7-ba18-1a6f05373ba3.png?x-oss-process=image%2Fresize%2Cw_1920) - 2.3 在新增定义的结构体中输入结构体的名称,我们这里叫Location,发现在User字段中Location字段的名称也随之改变。然后按 Esc键完成本次引入类型的操作。如下图所示。 ![](https://gocn.oss-cn-shanghai.aliyuncs.com/photo/yudotyang/04aef159-bb93-4654-bb2b-c6c26e43f0d8.png?x-oss-process=image%2Fresize%2Cw_1920) ### 03 使用⌥Opt+Enter快捷键快速更改tag中字段的命名风格 我们发现,在tag中,json的字段名称是用下划线格式风格的,如果我们想将其快速更改成驼峰式命名风格 该如何操作呢? - 3.1 首先将鼠标移动到tag字段处的位置,然后使用快捷键 **⌥Opt + Enter**,可以调用出菜单项。 然后选择**Change field name style in tags** - 3.2 我们会看到很多种命名风格,这里我们选择**fieldName**。我们会发现在该结构体内tag的所有命名都更改成了驼峰式命名。如下图所示: ![](https://gocn.oss-cn-shanghai.aliyuncs.com/photo/yudotyang/9a0e21bf-54b3-4563-bbd3-b0c8b4ef8c60.png?x-oss-process=image%2Fresize%2Cw_1920) ### 04 使用⌥Opt+Enter快捷键快速更新tag中的值 在上一节我们看到Opt+Enter键会弹出很多菜单选项。我们这里介绍在tag值中批量增加omitempty的操作。 - 4.1 首先将鼠标移动到tag字段处的位置,然后使用快捷键 **⌥Opt + Enter**,可以调用出菜单项。 然后选择**Update key value in tags** - 4.2 然后键入omitempty,结果将结构体中的所有tag值都加上了omitempty值。如下图所示: ![](https://gocn.oss-cn-shanghai.aliyuncs.com/photo/yudotyang/199b6270-6b60-4598-ae8b-3de8fb1aec8b.png?x-oss-process=image%2Fresize%2Cw_1920) ### 05 使用⌥Opt+Enter快捷键在tag中快速添加key 同样,我们使用Opt+Enter快捷键可以在tag中快速的添加key,例如xml,json等。 - 5.1 首先将鼠标移动到tag字段处的位置,然后使用快捷键 **⌥Opt + Enter**,可以调用出菜单项。 然后选择**Add key to tags** - 5.2 然后键入xml,结果将结构体中的所有tag值都加上了xml的key。如下图所示: ![](https://gocn.oss-cn-shanghai.aliyuncs.com/photo/yudotyang/1791e0c5-447c-43fc-8914-e00a8002b219.png?x-oss-process=image%2Fresize%2Cw_1920) ### 总结 本文总结了在Goland中通过快捷键的方式操作json相关的操作。其中在使用Opt+Enter快捷键的菜单选项中,还有很多相关的功能,大家在实际使用中可以尝试,熟练使用,以提高工作效率,节省时间。

有疑问加站长微信联系(非本文作者))

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:701969077

589 次点击  
加入收藏 微博
3 回复  |  直到 2022-01-17 09:20:23
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传