グローバルナビゲーションへ

本文へ

フッターへ

お役立ち情報Blog



【Go言語】jsonデータをstreamで扱うEncoder、Decoder型を試してみる

goのjsonパッケージには、jsonデータをstreamで扱うEncoder、Decoder型があります。
今回はこのEncoder、Decoderについて紹介します。

Encoderの定義

Encoderの構造体は以下のように定義されています

Encoderを作成するには NewEncoder 関数にio.Writerインターフェース型を渡します。
これによりstreamでの処理が可能になります。

Encoderの使い方

io.Writerを受け付けるのでstreamでファイルに書き出せます。

実行するとencode.jsonが作成されます。
htmlがエスケープされ、インデントが半角スペース4つになっているのがわかります。

Decoderの定義

Decoderの構造体は以下のように定義されています。

Decoderを作成するには NewDecoder 関数にio.Readerインターフェース型を渡します。
これによりstreamでの処理が可能になります。

Decoderの使い方

io.Readerを受け付けるのでapiのレスポンスをそのままstreamで扱えます。
今回はサンプルAPIのレスポンスを構造体にマッピングしてみます。

実行するとこのように構造体にjsonデータがマッピングされています。

さいごに

いかがだったでしょうか。
Encode、Decodeの使い方を学ぶことで、Marshal、Unmarshalと併せて効率良くjsonを扱えるようになります。
goはjsonを扱う事が多いのでぜひ活用してみてください。

The following two tabs change content below.

竹内 和也

事業開発部 web application engineer
大学卒業後、Web系ベンチャー企業でシステムエンジニアを経て、2009年にアーティスへ入社。 システムエンジニアとして多くの大学・病院・企業・自社のwebシステム開発に携わる。 2020年より事業開発部として新規サービスの開発に従事している。 資格:LPIC3
この記事のカテゴリ

FOLLOW US

最新の情報をお届けします