[Go言語]JSON -Struct構造なしでデータを操る方法-

こんにちは。KOUKIです。

とあるWeb系企業でエンジニアをやってます。

Go言語で開発することが多く、備忘のために記事をたくさん書いています。

今回は、Go言語でのJSONデータの取り扱いについて記事にしました。

MarshalとUnMarshalの復習

以前、JsonパッケージのMarshalとUnMarshalの記事を書きました。

UnMarshalは、データ(例えばJson)をGo言語のStruct構造体に変換してくれます。

一方、MarshalはGoのStructをjsonに変換します。

Struct構造なしでJSONデータを扱う

今回、この記事でお伝えしたいことは、JSONデータをStruct構造体なしで取り扱う方法です。

例えば、UnMarshalの処理時に、Book Struct構造体を用意していたと思います。

このデータは、JSONのKeyの値と一致しています。一致していないと型変換できません。

しかし、例えば、Redisなどのデータベースに格納されているJSONデータをUnMarshalしたい場合はどうすればいいでしょうか?

新しいKeyが追加されるたびにプログラムを書き換えるのでしょうか?

個人的にはすごくめんどくさいなと思って、構造体の定義なしでJSONデータを扱えないか調べてみました。

解決方法

以下の方法で、解決できます。

bookObjを用意して、InterfaceのType assertions機能を使ってデータをGoで扱える形に変換しました。

MapにKey-Value形式でデータを保存すれば、Struct構造体なしでデータを取り扱うことができます。

参考になれば嬉しいです。

それでは、また!

Go言語まとめ

まとめ記事

コメントを残す