I'm trying to get specific data based on next array condition in Go. I think, I will just give an example to make it clear.
Let's say I have an array like this
detail: {
contacts: [
{
email: "[email protected]"
condition: {
valid: "Yes",
verified: "No"
}
},
{
email: "[email protected]"
condition: {
valid: "Yes",
verified: "Yes"
}
}
]
}
So, I'm trying to get the email as a return after calling grpc function if the condition has verified "Yes" on it.
result, err := grpcService.callingService.GetContactDetail(ctx, &contactServicePb.GetContactDetailRequest{
ContactId: "123",
})
if err != nil {
return err
}
This is what I tried so far, I can access the contacts list but I don't know how do I take email which belong to "Yes" verified.
fmt.Println(result.Detail.Contacts)
this is how the output looks like
{
email: "[email protected]"
condition: {
valid: "Yes",
verified: "No"
}
},
{
email: "[email protected]"
condition: {
valid: "Yes",
verified: "Yes"
}
}
You can iterate over result.Detail.Contacts
array and store contacts' email with "Yes" verified condition:
verifiedEmails := []string{}
for _, contact := range result.Detail.Contacts {
if contact.condition.verified == "Yes" {
validEmails = append(validEmails, contact.email)
}
}
fmt.Println(validEmails)