5

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

 2 years ago
source link: https://studygolang.com/articles/35396
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

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

yudotyang · 6天之前 · 383 次点击 · 预计阅读时间 4 分钟 · 大约8小时之前 开始浏览    

大家好,我是Go学堂的渔夫子。

工欲善其事,必先利其器。今天我们讲解Goland是如何高效的处理json的。

01 将json直接转换成结构体

首先我们有一个段json格式的数据如下,看下Goland是如何快捷的转换成结构体的。

{
    "email": "[email protected]",
    "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。如下图:

    3d9d0925-1364-4243-9bc1-f4026d550214.png?x-oss-process=image%2Fresize%2Cw_1920

  • 1.3 对结构体进行命名。将json文本转换成结构体后,鼠标会自动定位到结构体名字的位置,也就是初始状态是T的位置。这时,我们改变结构体的名字为User,然后按 Esc键完成对结构体名字的编辑。如下图:

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"菜单。如下图:

f618e5d4-7dd9-4f20-8134-2d6c6a2b0997.png?x-oss-process=image%2Fresize%2Cw_1920

  • 2.2 在refactor This菜单中,我们发现有很多项,我们选择其中的"introduce type..."(引入类型...),其他项我们在后续使用中再逐一介绍。选择了该菜单项后,Location字段的结构体就会挪到User外面,并要求输入结构体名称。如下图:

6f38cfc2-e6e1-40f7-ba18-1a6f05373ba3.png?x-oss-process=image%2Fresize%2Cw_1920

  • 2.3 在新增定义的结构体中输入结构体的名称,我们这里叫Location,发现在User字段中Location字段的名称也随之改变。然后按 Esc键完成本次引入类型的操作。如下图所示。

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的所有命名都更改成了驼峰式命名。如下图所示:

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值。如下图所示:

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。如下图所示:

1791e0c5-447c-43fc-8914-e00a8002b219.png?x-oss-process=image%2Fresize%2Cw_1920

本文总结了在Goland中通过快捷键的方式操作json相关的操作。其中在使用Opt+Enter快捷键的菜单选项中,还有很多相关的功能,大家在实际使用中可以尝试,熟练使用,以提高工作效率,节省时间。


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

280

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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK