반응형
# 배경
배열안에 map이 여러개 있다. map안에는 값이 여러개 있다. 배열안에 있는 map의 타입은 interface{} 이다.
- donationInfo 안에는 []interface{} 타입으로 값이 있다.
donationInfo := dataHTML.Content["donationInfo"].([]interface{})
map[donationDate:20220328 donationId:279939 totalAmount:3076 totalQuantity:2] map[donationDate:20220316 donationId:279936 totalAmount:54834 totalQuantity:4] map[donationDate:20220316 donationId:279935 totalAmount:4834 totalQuantity:3] map[donationDate:20220316 donationId:279934 totalAmount:6738 totalQuantity:3]]
나는 interface{}를 struct로 변경 하고 싶었다.
map[donationDate:20220328 donationId:279939 totalAmount:3076 totalQuantity:2]
이건 타입이 interface{}이다.
우선 struct를 하나 만들었다. => DonationInfo{} 그리고 이 스트럭을 배열로 만들었다.
var dtoInfo = make([]DonationInfo{}, len(donationInfo))
그리고 배열 donationInfo를 for문을 돌렸다.
거기서 나오는 interface{}를 바이트 데이터롤 변경하고
바이트를 struct에 넣어 주면 값을 찾기가 쉽다.
for i, v := range donationInfo {
byteData, _ := json.Marshal(v)
json.Unmarshal(byteData, &dtoInfo[i])
}
그럼 원하는 값을 쉽게 얻을 수 있다.
[{279939 20220328 2 3076} {279936 20220316 4 54834} {279935 20220316 3 4834} {279934 20220316 3 6738}]
반응형
'Study > Go 언어' 카테고리의 다른 글
[Golang] 스웨거(Swagger) 사용하기 (0) | 2023.09.04 |
---|---|
[Golang] Xorm에 AllCols() 이걸 사용할 때 bool 타입은 업데이트가 안된다. (0) | 2023.08.02 |
[Golang] 슬랙(Slack)으로 메시지 보내기 (0) | 2023.07.14 |
[Golang] 원하는 문자열 찾기 (0) | 2023.07.03 |
[Golang] context.WithTimeout과 context.WithDeadline (0) | 2022.11.03 |