Challenge 1 — Solution Task: Define a struct Product with fields Name (string), Price (float64), and InStock (bool), with json tags using lowercase key names. Create one, marshal it with json.Marshal, and print the resulting JSON string. package main import ( "encoding/json" "fmt" ) type Product struct { Name string `json:"name"` Price float64 `json:"price"` InStock bool `json:"inStock"` } func main() { product := Product{Name: "Keyboard", Price: 49.99, InStock: true} data, err := json.Marshal(product) if err != nil { fmt.Println("Error:", err) return } fmt.Println(string(data)) } Expected output: {"name":"Keyboard","price":49.99,"inStock":true} Notes: - Without the json tags, the output would use the capitalised Go field names instead (Name, Price, InStock) — the tags are what produce the lowercase keys typically expected by JSON APIs. - json.Marshal returns []byte, not a string — string(data) converts the raw bytes into something printable. - The field order in the output JSON matches the struct's field declaration order, not alphabetical order.