カテゴリ: Go言語 更新日: 2025/11/09

Go言語でJSON APIを作る基本!エンコード・デコード例

Go言語でJSON APIを作る基本!エンコード・デコード例
Go言語でJSON APIを作る基本!エンコード・デコード例

先生と生徒の会話形式で理解しよう

生徒

「先生、Go言語でJSON形式のデータを扱う方法を教えてください。」

先生

「はい、Goでは標準ライブラリのencoding/jsonを使うと、JSONのエンコードやデコードが簡単にできます。」

生徒

「エンコードとデコードって何ですか?」

先生

「エンコードはGoのデータをJSON形式に変換すること、デコードはJSON形式のデータをGoの構造体に変換することです。」

生徒

「なるほど、それでは具体的な例を見せてもらえますか?」

1. JSON APIの基本構造

1. JSON APIの基本構造
1. JSON APIの基本構造

JSON APIとは、Web上でデータをやり取りするための仕組みです。Goではhttp.HandleFuncでルートを設定し、json.NewEncoderでデータを返すことで簡単にAPIを作成できます。


package main

import (
    "encoding/json"
    "net/http"
)

type User struct {
    Name string `json:"name"`
    Age  int    `json:"age"`
}

func userHandler(w http.ResponseWriter, r *http.Request) {
    user := User{Name: "太郎", Age: 25}
    w.Header().Set("Content-Type", "application/json")
    json.NewEncoder(w).Encode(user)
}

func main() {
    http.HandleFunc("/user", userHandler)
    http.ListenAndServe(":8080", nil)
}

このコードでは/userにアクセスすると、JSON形式でユーザー情報が返されます。w.Header().Set("Content-Type", "application/json")は、返すデータの形式をJSONとブラウザに知らせる設定です。

2. JSONのデコード方法

2. JSONのデコード方法
2. JSONのデコード方法

APIでは、クライアントから送られたJSONデータをGoの構造体に変換して扱うことも重要です。これをデコードと呼びます。


func createUserHandler(w http.ResponseWriter, r *http.Request) {
    if r.Method == "POST" {
        var user User
        json.NewDecoder(r.Body).Decode(&user)
        w.Header().Set("Content-Type", "application/json")
        json.NewEncoder(w).Encode(user)
    } else {
        http.Error(w, "POSTメソッドでアクセスしてください", http.StatusMethodNotAllowed)
    }
}

func main() {
    http.HandleFunc("/create-user", createUserHandler)
    http.ListenAndServe(":8080", nil)
}

このコードでは、POSTメソッドで送られたJSONデータをuser構造体に変換し、再度JSONとして返しています。これにより、データの受け取りと送信が簡単に行えます。

3. JSON API作成のポイント

3. JSON API作成のポイント
3. JSON API作成のポイント
  • Goの標準ライブラリencoding/jsonを使うことで、簡単にJSONのエンコード・デコードが可能。
  • 構造体のフィールドに`json:"フィールド名"`タグを付けると、JSONのキー名を自由に設定できる。
  • http.HandleFuncでURLごとに処理を設定できるので、複数のAPIを作るのも簡単。
  • POSTリクエストの処理ではjson.NewDecoder(r.Body)を使い、リクエストボディからJSONを読み取る。
  • 返すデータはw.Header().Set("Content-Type", "application/json")でJSON形式であることを明示。

これらのポイントを押さえれば、Go言語で簡単にJSON APIを作成でき、データのやり取りやWebサービス開発に役立てられます。

カテゴリの一覧へ
新着記事
Go言語の構造体でインターフェースを実装する方法を初心者向けにやさしく解説!
Kotlinの演算子一覧と使い方!算術・比較・論理演算子の基本を解説
Go言語の文字列フォーマット!fmt.Sprintfで簡単に出力を整形する方法
Go言語のエラーと例外の違いを初心者向けに整理!わかりやすく解説
人気記事
No.1
Kotlin・Go・Swift記事の人気No1
Swiftのwhile文とrepeat while文を完全マスター!初心者にもわかる繰り返し処理の使い方と違い
No.2
Kotlin・Go・Swift記事の人気No2
Swift入門ガイド|基本構文と書き方をマスターしよう
No.3
Kotlin・Go・Swift記事の人気No3
Android Studioのインストール手順と初期設定を初心者向けに完全解説!
No.4
Kotlin・Go・Swift記事の人気No4
Kotlinの正規表現(Regex)の使い方をやさしく解説!文字列操作の基本を初心者向けに学ぼう
No.5
Kotlin・Go・Swift記事の人気No5
Kotlinのコンパニオンオブジェクトとは?初心者向けに使い方と役割をわかりやすく解説!
No.6
Kotlin・Go・Swift記事の人気No6
Kotlinで画面を作る!レイアウトXMLとビューの基本操作をやさしく解説
No.7
Kotlin・Go・Swift記事の人気No7
Kotlinのwhen式を完全ガイド!初心者でもわかるパターンマッチング的な使い方
No.8
Kotlin・Go・Swift記事の人気No8
Swiftのオプショナル型とは?初心者でもわかる使い方とアンラップの基礎