파일 작업 함수
json 패키지가 제공하는 파일 작업 함수로, 파일 읽기/쓰기 및 스트리밍 I/O 를 지원합니다.
파일 읽기 함수
LoadFromFile
시그니처: func LoadFromFile(filePath string, cfg ...Config) (string, error)
파일에서 JSON 데이터를 로드합니다.
매개변수
| 이름 | 타입 | 필수 | 설명 |
|---|---|---|---|
filePath | string | 예 | 파일 경로 |
cfg | Config | 아니요 | 선택적 설정 |
go
data, err := json.LoadFromFile("config.json")
if err != nil {
panic(err)
}
fmt.Println(data)SaveToFile
시그니처: func SaveToFile(filePath string, data any, cfg ...Config) error
JSON 데이터를 파일에 저장합니다.
매개변수
| 이름 | 타입 | 필수 | 설명 |
|---|---|---|---|
filePath | string | 예 | 파일 경로 |
data | any | 예 | 저장할 데이터 |
cfg | Config | 아니요 | 선택적 설정 |
go
err := json.SaveToFile("output.json", map[string]any{
"name": "Alice",
"age": 30,
})
if err != nil {
panic(err)
}MarshalToFile
시그니처: func MarshalToFile(filePath string, data any, cfg ...Config) error
데이터를 직렬화하여 파일에 씁니다.
매개변수
| 이름 | 타입 | 필수 | 설명 |
|---|---|---|---|
filePath | string | 예 | 파일 경로 |
data | any | 예 | 직렬화할 데이터 |
cfg | Config | 아니요 | 선택적 설정 |
go
err := json.MarshalToFile("data.json", myStruct)UnmarshalFromFile
시그니처: func UnmarshalFromFile(filePath string, v any, cfg ...Config) error
파일에서 데이터를 읽고 역직렬화합니다.
매개변수
| 이름 | 타입 | 필수 | 설명 |
|---|---|---|---|
filePath | string | 예 | 파일 경로 |
v | any | 예 | 대상 객체 포인터 |
cfg | Config | 아니요 | 선택적 설정 |
go
var config MyConfig
err := json.UnmarshalFromFile("config.json", &config)
if err != nil {
panic(err)
}LoadFromReader
시그니처: func LoadFromReader(reader io.Reader, cfg ...Config) (string, error)
io.Reader 에서 JSON 데이터를 로드합니다. 네트워크 연결, HTTP 요청 본문 등 스트리밍 데이터 소스에서 JSON 을 읽는 데 적합합니다.
매개변수
| 이름 | 타입 | 필수 | 설명 |
|---|---|---|---|
reader | io.Reader | 예 | 데이터 소스 |
cfg | Config | 아니요 | 선택적 설정 |
go
// HTTP 응답 본문에서 읽기
resp, _ := http.Get("https://api.example.com/data")
defer resp.Body.Close()
data, err := json.LoadFromReader(resp.Body)
// 문자열에서 읽기
data, err = json.LoadFromReader(strings.NewReader(`{"name":"test"}`))SaveToWriter
시그니처: func SaveToWriter(writer io.Writer, data any, cfg ...Config) error
JSON 데이터를 io.Writer 에 씁니다.
매개변수
| 이름 | 타입 | 필수 | 설명 |
|---|---|---|---|
writer | io.Writer | 예 | 출력 대상 |
data | any | 예 | 쓸 데이터 |
cfg | Config | 아니요 | 선택적 설정 |
go
var buf bytes.Buffer
err := json.SaveToWriter(&buf, map[string]any{"name": "test"})
if err != nil {
panic(err)
}관련 문서
- JSONL 처리 함수 - ParseJSONL, StreamLinesInto 등 줄바꿈 구분 JSON 처리
- 인코딩 출력 함수 - Marshal, Unmarshal 등 직렬화 작업
- 스트리밍 처리 - 스트리밍 프로세서 자세히