Working with JSON
JavaScript Object Notation (JSON) is a textual format in which you can represent, store, and transfer structural data.
In Go, map
and struct
data types provide the closest JSON representation as they can store data in a key:value
format.
When you paste JSON in GoLand, the IDE suggests converting it to the struct
type. All the necessary struct
field tags are generated and added automatically.

You can use the copy-and-paste approach or the Generate Go Type from JSON dialog.
Press CtrlShift0A to invoke the Go to Action search.
Search for the Generate Go Type from JSON option and run it.
Paste or write your JSON in the text field.
Click Generate.
Gif
By using intention actions, you can add new tags, keys and modify the code style of tag keys.
Click a struct field and press AltEnter.
Select Add key to tags.
Gif
Click a struct field and press AltEnter.
Select Update key value in tags.
Gif
Click a key in tag and press AltEnter.
Select Change field name style in tags.
Gif
When you modify tag keys, GoLand displays a list of the most popular values for these tags. For example, json
suggests omitempty
; xml
has attr
, cdata
, chardata
, innerxml
, and others; asn1
has optional
, explicit
, generalized
, and so on.

When you start filling out a tag, right after you type backticks (
`
), GoLand will suggest entering a key. Press Tab or Enter and you will see a list of options. Choose the style of the value name. The IDE saves your choice, and it will suggest the same style first in the list for other fields of this struct.Gif
If you have an empty struct
, you can generate all the necessary fields and tags from JSON. To do that, call the Generate Go Type from JSON dialog by using the Go to Action search and paste your JSON in the text field. Alternatively, you can navigate to Code | Generate and select Type from JSON in the popup window.

Thanks for your feedback!