convert map to struct golang

package main

import (
    "encoding/json"
    "fmt"
)

type Person struct {
    Name    string `json:"name"`
    Age     int    `json:"age"`
    Address string `json:"address"`
}

func main() {
    // Example map
    personMap := map[string]interface{}{
        "name":    "John Doe",
        "age":     30,
        "address": "123 Main St",
    }

    // Convert map to JSON
    personJSON, err := json.Marshal(personMap)
    if err != nil {
        fmt.Println("Error:", err)
        return
    }

    // Convert JSON to struct
    var personStruct Person
    err = json.Unmarshal(personJSON, &personStruct)
    if err != nil {
        fmt.Println("Error:", err)
        return
    }

    // Print the struct
    fmt.Printf("%+v\n", personStruct)
}