もちろん、ここにJSONファイルをデコードするGoのコード例がある：


```
package main

import (
    "encoding/json"
    "fmt"
    "os"
)

type Person struct {
    Name  string   `json:"name"`
    Age   int      `json:"age"`
    Email []string `json:"email"`
}

func main() {
    file, err := os.Open("people.json")
    if err != nil {
        fmt.Println("Error opening file:", err)
        return
    }
    defer file.Close()

    var people []Person

    decoder := json.NewDecoder(file)
    err = decoder.Decode(&people)
    if err != nil {
        fmt.Println("Error decoding JSON:", err)
        return
    }

    fmt.Println(people)
}
```

この例では、JSONデータに合わせてPerson構造体を定義しています。次に、people.jsonファイルを開き、JSONデコーダを使用してファイルの内容を読み取り、Person構造体のスライスにデコードします。最後に、結果として得られたPerson構造体のスライスをコンソールに出力します。deferキーワードを使用して、ファイルの読み取りが完了したらファイルが閉じられるようにしていることに注意してください。
Sure, here is an example code in Go to decode a JSON file:


```
package main

import (
    "encoding/json"
    "fmt"
    "os"
)

type Person struct {
    Name  string   `json:"name"`
    Age   int      `json:"age"`
    Email []string `json:"email"`
}

func main() {
    file, err := os.Open("people.json")
    if err != nil {
        fmt.Println("Error opening file:", err)
        return
    }
    defer file.Close()

    var people []Person

    decoder := json.NewDecoder(file)
    err = decoder.Decode(&people)
    if err != nil {
        fmt.Println("Error decoding JSON:", err)
        return
    }

    fmt.Println(people)
}
```

In this example, we define a struct Person to match the JSON data. Then, we open the people.json file and use a JSON decoder to read and decode the contents of the file into a slice of Person structs. Finally, we print the resulting slice of Person structs to the console. Note that we use the defer keyword to ensure that the file is closed after we're done reading from it.