🪟 Windows TippsTop 5 Ways to Enable Hibernate Mode on Windows 11(01.09.2026 um 04:41 Uhr)
⚠️ Malware / Trojaner / VirenPost-DEF CON phishing campaign delivered AMOS and NetSupport malware(24.08.2026 um 09:42 Uhr)
🕵️ SicherheitslückenCritical Ruby on Rails Vulnerability Under Active Attack | CVE-2026-66066(02.09.2026 um 06:41 Uhr)
🕵️ SicherheitslückenHow to Write Bug Bounty Report That Gets Paid (2026)(02.09.2026 um 18:57 Uhr)
⚠️ Malware / Trojaner / VirenWhat is GRC in Cybersecurity? A Complete Beginners Guide (2026)(03.09.2026 um 16:37 Uhr)
🔧 AI Nachrichten Breaking| MAJOR GLOBAL AI OUTAGE: ChatGPT, Claude, and Grok Down(03.09.2026 um 17:31 Uhr)
🕵️ SicherheitslückenArista warns customers ahead of next week’s security disclosures(02.09.2026 um 23:34 Uhr)
🔧 AI Nachrichten Every agent call is a trust decision you're not making.(11.08.2026 um 20:25 Uhr)
🪟 Windows TippsTop 5 Ways to Enable Hibernate Mode on Windows 11(01.09.2026 um 04:41 Uhr)
⚠️ Malware / Trojaner / VirenPost-DEF CON phishing campaign delivered AMOS and NetSupport malware(24.08.2026 um 09:42 Uhr)
🕵️ SicherheitslückenCritical Ruby on Rails Vulnerability Under Active Attack | CVE-2026-66066(02.09.2026 um 06:41 Uhr)
🕵️ SicherheitslückenHow to Write Bug Bounty Report That Gets Paid (2026)(02.09.2026 um 18:57 Uhr)
⚠️ Malware / Trojaner / VirenWhat is GRC in Cybersecurity? A Complete Beginners Guide (2026)(03.09.2026 um 16:37 Uhr)
🔧 AI Nachrichten Breaking| MAJOR GLOBAL AI OUTAGE: ChatGPT, Claude, and Grok Down(03.09.2026 um 17:31 Uhr)
🕵️ SicherheitslückenArista warns customers ahead of next week’s security disclosures(02.09.2026 um 23:34 Uhr)
🔧 AI Nachrichten Every agent call is a trust decision you're not making.(11.08.2026 um 20:25 Uhr)

26 🕛 kürzlich 4 Min Lesezeit
0

Returning JSON Responses in Go

↗ Quelle (dev.to)
🗣️ Stimme:
📑 Inhaltsübersicht

In the previous tutorial, we built a simple HTTP server in Go that returned plain text responses.



While that works, most modern applications communicate using JSON.



Frontend applications, mobile apps, and APIs commonly exchange data in JSON format.



In this tutorial, we will learn how to return JSON responses from a Go server using Go's standard library.



By the end, you will understand:




  • how JSON responses work in Go

  • how to create structs

  • how to encode data into JSON

  • how to send JSON from an HTTP server






Prerequisites



To follow along, you should have:




  • Go installed

  • basic familiarity with Go syntax

  • understanding of the net/http package



You can confirm if Go is installed by running:




CODE
go version









Step 1 — Create the Project



Create a new folder for the project:




CODE
mkdir go-json-server
cd go-json-server






Now initialize a Go module:




CODE
go mod init go-json-server






This creates a go.mod file for managing project dependencies.






Step 2 — Create the Server File



Create a file called main.go.



Your project structure should now look like this:




CODE
go-json-server/
├── go.mod
└── main.go









Step 3 — Write the JSON Server



Open main.go and write this:




CODE
package main

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

type Message struct {
Text string `json:"text"`
}

func homeHandler(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "application/json")

response := Message{
Text: "Hello from Go!",
}

json.NewEncoder(w).Encode(response)
}

func main() {
http.HandleFunc("/", homeHandler)

http.ListenAndServe(":8080", nil)
}






Now let's unpack what is happening.






Understanding the Imports






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






We imported two packages:





  • net/http — used for creating the HTTP server


  • encoding/json — used for converting Go data into JSON



The encoding/json package is part of Go's standard library, so we do not need to install anything extra.






Understanding Structs



This part:




CODE
type Message struct {
Text string `json:"text"`
}






defines a struct.



Structs are used to group related data together.



In this example:





  • Message is the struct name


  • Text is a field inside the struct



We later use this struct to create JSON responses.






Why is Text Capitalized?



You may notice that Text starts with an uppercase letter.



In Go, fields must begin with uppercase letters to be exported.



The JSON encoder can only access exported fields.



For example, this would not work correctly:




CODE
type Message struct {
text string
}






because text is unexported.



This is a very important concept when working with JSON in Go.






Understanding JSON Tags



This part:




CODE
`json:"text"`






is called a JSON tag.



JSON tags control how fields appear in the JSON response.



Our Go field is named:




CODE
Text






but the JSON output becomes:




CODE
{
"text": "Hello from Go!"
}






This allows us to keep Go naming conventions while returning clean JSON responses.






Understanding Response Headers



Inside the handler, we set a response header:




CODE
w.Header().Set("Content-Type", "application/json")






Headers provide additional information about the HTTP response.



Here, we tell the client:




"This response contains JSON data."




This is standard practice when building APIs.






Creating the Response Data



Inside the handler, we create a struct value:




CODE
response := Message{
Text: "Hello from Go!",
}






This creates the data we want to send back to the client.






Encoding JSON Responses



This line converts the Go struct into JSON:




CODE
json.NewEncoder(w).Encode(response)






Here's what happens:





  • NewEncoder(w) creates a JSON encoder


  • w represents the HTTP response


  • Encode(response) converts the struct into JSON and sends it to the client



This is one of the most common ways to return JSON in Go web servers.






Step 4 — Run the Server



Start the application:




CODE
go run main.go






The server should now be running on port 8080.






Step 5 — Test the Server



Open your browser and visit:




CODE
http://localhost:8080






You should see:




CODE
{
"text": "Hello from Go!"
}









Testing with curl



You can also test the server from the terminal using curl:




CODE
curl localhost:8080






You should receive:




CODE
{
"text": "Hello from Go!"
}









What Happens When a Request Is Made?



Here's the flow:




  1. The client sends an HTTP request

  2. Go matches the route

  3. The handler function runs

  4. A struct is created

  5. The struct is converted into JSON

  6. The JSON response is sent back to the client



This is the foundation of many backend APIs.






Where to Go Next



Now that we can return JSON responses, we could extend this server by adding:




  • multiple API routes

  • dynamic JSON responses

  • request body handling

  • JSON decoding

  • CRUD operations — because, you know, every backend journey eventually leads there

  • databases



This is where backend development starts becoming more interactive and powerful.






Final Thoughts



We started with a plain text HTTP server, evolved it into a simple JSON API.



Along the way, we learned about:




  • structs

  • JSON encoding

  • response headers

  • API responses



These concepts form the foundation of modern backend development in Go.



Thanks for reading!



Happy coding!

Vollständiger Original-Bericht
Ausführliche Details, Code-Beispiele & Hersteller-Stellungnahme auf dev.to.
↗ Original-Artikel auf dev.to lesen
Wie bewertest du diesen Beitrag?
1 Klick Feedback
Teilen mit Netzwerk & Team:

Community-Analysen & Experten-Meinungen 0

Verfasse deine eigene Analyse, teile Workarounds oder diskutiere diesen Vorfall im Blog.
Noch keine Community-Analyse verfasst. Markiere einen Textabschnitt oder klicke oben auf Eigene Analyse verfassen“!
Community Pulse: Relevanz-Einschätzung
1 Klick Experten-Votum
🔴 Akute Relevanz 38%
🟡 In Evaluierung 23%
🟢 Keine Auswirkung 12%
Spannende Innovation 27%
Verwandte Story-Cluster & Quellen (Vektor-KI)
Port 8095 Engine
1 Quelle
Top 5 Ways to Enable Hibernate Mode on Windows 11
1 Quelle
Post-DEF CON phishing campaign delivered AMOS and NetSupport malware
1 Quelle
Critical Ruby on Rails Vulnerability Under Active Attack | CVE-2026-66066
Ähnliche Beiträge
🔍 Verwandte News

Auch interessante Nachrichten Returning JSON Responses in Go

Thematisch verwandte Begriffe: Returning, JSON, Responses · 6 Treffer

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...