🐾 [golang] JSON에서 원하는 값만 추출해 오기
# 배경
DB에서 Json으로 되어 있는 컬럼에서 원하는 값 추출하고 싶었다.
# DB 컬럼 값
content
{"name": "유지니", "id": 3954, "totalQuantity": 3, "registrationNo": "990101-2******"}
코드
type ContentJson struct {
Id int64
Content map[string]interface{}
}
func (contentService) ExtractValue(ctx context.Context, id int64) error {
content, err := DonationDocuService().GetIssuedDonationReceipt(ctx, id) //원하는 값을 가져왔다.
if err != nil {
return err
}
m := entity.ContentJson{Id: id}
_ = json.Unmarshal(content.Content, &m.Content) //바이트를 JSon으로 바꿔준다.
dateOfBirth = m.Content["registrationNo"].(string)[0:6] //주민등록번호에서 앞에 6자리만 추출한다.
fmt.println("생년월일 :", dateOfBirth)
return
}
# KeyPoint
- content는 map으로 되어있어서 키로 값을 찾아왔다.
dateOfBirth= m.Content["registrationNo"]
- 인터페이스를 string으로 변경했다.
m.Content["registrationNo"].(string)