이전 포스팅에서 오류가 나는 경우가 있어서 직접 작성하였습니다.
정규식으로 한 줄만 처리하도록 하였습니다. '//' 주석만 처리할 수 있습니다.
특별한 설명 없이 바로 가보실까요?
테스트 json파일
{
"service_ip": "1.1.1.1", // 안아ᄋᆫ안
"node_name": "node_1", //kljfds
"info": { // kjfdklsj
"service_name": "TheGolangOfFuture",// jkjdsj_kfdjs!#@#$%^^&*()()_ jfj // jdjd//
"desc": "미래의 고"// 안아ᄋᆫ안안ㅇ
}
}
결과는 다음과 같습니다.
package main
import (
"encoding/json"
"fmt"
"os"
"path"
"regexp"
)
type Config struct {
ServiceIp string `json:"service_ip"`
NodeName string `json:"node_name"`
Info struct {
ServiceName string `json:"service_name"`
Desc string `json:"desc"`
} `json:"info"`
}
func tidyJson(data []byte) []byte {
m := regexp.MustCompile("\\/\\/.*")
data = m.ReplaceAll(data, []byte(""))
return data
}
func main() {
cwd, err := os.Getwd()
if err != nil {
panic(err)
}
binConfig, err := os.ReadFile(path.Join(cwd, "config.json"))
if err != nil {
panic(err)
}
fmt.Println(string(binConfig))
var config Config
binConfig = tidyJson(binConfig)
json.Unmarshal(binConfig, &config)
fmt.Println(string(binConfig))
fmt.Printf("%+v", config)
}
'Go언어 golang' 카테고리의 다른 글
2023-03-28 : golang Syslog server / Go언어 Syslog collector - Grok 으로 해보기. (0) | 2023.03.28 |
---|---|
golang grok / go언어 grok 패턴 (0) | 2023.03.27 |
golang JSON 설정 파일 로더 / JSON 주석 처리 (0) | 2023.03.23 |
golang REST API / go언어 REST API 서버 #6 PUT & DELETE (0) | 2023.03.22 |
golang REST API / go언어 REST API 서버 #5 METHOD GET item (0) | 2023.03.21 |