🐾   [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

  1. content는 map으로 되어있어서 키로 값을 찾아왔다.
dateOfBirth= m.Content["registrationNo"]
  1. 인터페이스를 string으로 변경했다.
m.Content["registrationNo"].(string)

​ ​ ​