如何根据条件从嵌套数组golang grpc服务中获取数据

How to get data based on condition from nested array golang grpc service

我正在尝试根据 Go 中的下一个数组条件获取特定数据。我想,我就举个例子说清楚吧。

假设我有一个这样的数组

detail: {

   contacts: [

      {

         email: "testing@gmail.com"

         condition: {
               
              valid: "Yes",

              verified: "No"

         }

      },

      {

         email: "testing2@gmail.com"

         condition: {

              valid: "Yes",

              verified: "Yes"

         }

      }

   ]

}

所以,如果条件验证为“是”,我会在调用 grpc 函数后尝试将电子邮件作为 return 获取。

result, err := grpcService.callingService.GetContactDetail(ctx, &contactServicePb.GetContactDetailRequest{
    ContactId: "123",
})
if err != nil {
    return err
}

这是我目前尝试的方法,我可以访问联系人列表,但我不知道如何验证属于“是”的电子邮件。

fmt.Println(result.Detail.Contacts)

这是输出的样子

      {

         email: "testing@gmail.com"

         condition: {

              valid: "Yes",

              verified: "No"

         }

      },

      {

         email: "testing2@gmail.com"

         condition: {

              valid: "Yes",

              verified: "Yes"

         }

      }

您可以遍历 result.Detail.Contacts 数组并存储联系人的电子邮件,验证条件为“是”:

verifiedEmails := []string{}

for _, contact := range result.Detail.Contacts {
    if contact.condition.verified == "Yes" {
        validEmails = append(validEmails, contact.email)
    }
}

fmt.Println(validEmails)