Skip to main content

Get full access to 実用 Go言語 ―システム開発の現場で知っておきたいアドバイス and 60K+ other titles, with a free 10-day trial of O'Reilly.

There are also live events, courses curated by job role, and more.

8.1 JSONファイルを扱う

JSONとはJavaScript Object Notationの略で、テキスト形式のデータフォーマットです。フロントエンドとバックエンドのデータのやり取り、SaaSサービスが提供するAPIのレスポンス、CLIの設定ファイルなど多くの場所で用いられています。ほとんどのプログラミング言語で標準ライブラリに組み込まれており、Goでも encoding/json パッケージを用いて操作できます 1 。まずは基本的な操作方法から見ていきましょう。

1

JSONに関するRFCは RFC 7159 や RFC 8259 があります。Goの encoding/json パッケージは RFC 7159 で定められている仕様がベースになっています。

8.1.1 基本的なエンコードとデコード

エンコードとは一般に、データをある規則に基づいて別の形式に変換することを指します。逆に変換された形式のデータを元に戻すことをデコードと言います。Goの値をバイト列への変換することはエンコード、逆にバイト列からGoの値に変換することはデコードとなります 2

2

Javaの文化だと、Javaのオブジェクトからバイト列に変換して出力することをシリアライズと呼び、シリアライズされた入力をJavaオブジェクトに復元することをデシリアライズと呼びます。言語の文化圏によって微妙な言い回しの違いはありますが、意味は似たようなものです。

8.1.1.1 デコード

APIにリクエストしたレスポンスがJSONになっており、レスポンスをGoのアプリケーションで扱いたい場合は多いでしょう。例として、以下のJSONをGoの値にデコードしましょう。

リスト8-1: ip.json ...

Get 実用 Go言語 ―システム開発の現場で知っておきたいアドバイス now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.

Don’t leave empty-handed

Get Mark Richards’s Software Architecture Patterns ebook to better understand how to design components—and how they should interact.

It’s yours, free.

Get it now
Cover of Software Architecture Patterns

Check it out now on O’Reilly

Dive in for free with a 10-day trial of the O’Reilly learning platform—then explore all the other resources our members count on to build skills and solve problems every day.

Start your free trial Become a member now