[go] JSON 파일 읽기 및 쓰기
JSON(JavaScript Object Notation)은 데이터 교환을 목적으로 하는 경량의 데이터 형식입니다. Go 언어에서 JSON 파일을 읽거나 쓰는 방법에 대해 알아보겠습니다.
JSON 파일 읽기
Go에서 JSON 파일을 읽기 위해서는 encoding/json
패키지를 사용합니다. 먼저 JSON 파일을 읽어서 Go 프로그램의 데이터 구조체에 저장해야 합니다. 다음은 JSON 파일을 읽는 간단한 예제입니다.
package main
import (
"encoding/json"
"fmt"
"io/ioutil"
"os"
)
type User struct {
ID int `json:"id"`
Username string `json:"username"`
Email string `json:"email"`
}
func main() {
file, err := os.Open("users.json")
if err != nil {
fmt.Println("파일을 열 수 없습니다.", err)
return
}
defer file.Close()
data, err := ioutil.ReadAll(file)
if err != nil {
fmt.Println("파일을 읽을 수 없습니다.", err)
return
}
var users []User
err = json.Unmarshal(data, &users)
if err != nil {
fmt.Println("JSON 파싱에 실패했습니다.", err)
return
}
fmt.Println(users)
}
위 예제에서는 User
구조체를 정의하고, json.Unmarshal
함수를 사용하여 JSON 파일의 내용을 구조체 슬라이스에 언마샬링합니다.
JSON 파일 쓰기
이번에는 Go에서 JSON 파일을 쓰는 방법을 살펴보겠습니다.
package main
import (
"encoding/json"
"fmt"
"os"
)
type User struct {
ID int `json:"id"`
Username string `json:"username"`
Email string `json:"email"`
}
func main() {
users := []User{
{ID: 1, Username: "user1", Email: "user1@example.com"},
{ID: 2, Username: "user2", Email: "user2@example.com"},
}
file, err := os.Create("output.json")
if err != nil {
fmt.Println("파일을 생성할 수 없습니다.", err)
return
}
defer file.Close()
encoder := json.NewEncoder(file)
err = encoder.Encode(users)
if err != nil {
fmt.Println("JSON 파일을 쓸 수 없습니다.", err)
return
}
fmt.Println("JSON 파일이 성공적으로 저장되었습니다.")
}
위 예제에서는 json.NewEncoder
를 사용하여 JSON 파일에 데이터를 인코딩하고, encoder.Encode
를 이용하여 JSON 파일을 생성합니다.
Go에서 JSON 파일을 읽고 쓰는 방법에 대해 알아보았습니다. JSON 파일을 다룰 때는 에러 핸들링에 주의해야 하며, 일반적으로 ioutil
및 os
패키지를 사용하여 파일을 처리합니다.
더 많은 자세한 내용은 Go 언어 공식 문서를 참고할 수 있습니다.