Go言語 – 15.JSONのパース/生成

2019-07-12

JSONのパース/生成

JSON形式を扱うには、encoding/jsonパッケージを使用します。

パース処理

JSON形式の文字列をパースするには、JSONのデータ構造に合わせて構造体を定義し、Unmarshal関数を使用します。

タグについて

構造体のメンバ変数宣言の後ろに‘json:“xxx”’という形式の文字列が付けられていますが、これはタグと呼ばれるものです。
タグは変数の性質には全く影響しませんが、reflectパッケージを用いることで変数につけられたタグを取得することができます。

encoding/jsonパッケージでは、タグを利用してJSON内のキー名と各変数の結びつけを行っています。タグを省略した場合は変数名と全く同じ名前のキーが自動的に結び付けられます。

生成処理

構造体のJSON文字列表現を生成するには、Marshal関数を使用します。

JSON文字列としては書式通りですが、可読性のために改行やインデントを加えたい、というケースがあります。その場合はIndent関数を使用し、インデント済みの文字列をbytes.Bufferに書き込みます。