AnyToString function takes an Any proto message and converts it into a string.
(any *anypb.Any)
| 203 | |
| 204 | // AnyToString function takes an Any proto message and converts it into a string. |
| 205 | func AnyToString(any *anypb.Any) string { |
| 206 | var str string |
| 207 | |
| 208 | // Convert the Any proto message into string based on its TypeUrl |
| 209 | switch any.TypeUrl { |
| 210 | case "type.googleapis.com/base.v1.BooleanValue": |
| 211 | boolVal := &base.BooleanValue{} |
| 212 | if err := any.UnmarshalTo(boolVal); err != nil { |
| 213 | return "undefined" |
| 214 | } |
| 215 | str = strconv.FormatBool(boolVal.Data) |
| 216 | case "type.googleapis.com/base.v1.BooleanArrayValue": |
| 217 | boolVal := &base.BooleanArrayValue{} |
| 218 | if err := any.UnmarshalTo(boolVal); err != nil { |
| 219 | return "undefined" |
| 220 | } |
| 221 | var strs []string |
| 222 | for _, b := range boolVal.GetData() { |
| 223 | strs = append(strs, strconv.FormatBool(b)) |
| 224 | } |
| 225 | str = strings.Join(strs, ",") |
| 226 | case "type.googleapis.com/base.v1.StringValue": |
| 227 | stringVal := &base.StringValue{} |
| 228 | if err := any.UnmarshalTo(stringVal); err != nil { |
| 229 | return "undefined" |
| 230 | } |
| 231 | str = stringVal.Data |
| 232 | case "type.googleapis.com/base.v1.StringArrayValue": |
| 233 | stringVal := &base.StringArrayValue{} |
| 234 | if err := any.UnmarshalTo(stringVal); err != nil { |
| 235 | return "undefined" |
| 236 | } |
| 237 | str = strings.Join(stringVal.GetData(), ",") // Join string array |
| 238 | case "type.googleapis.com/base.v1.DoubleValue": |
| 239 | doubleVal := &base.DoubleValue{} |
| 240 | if err := any.UnmarshalTo(doubleVal); err != nil { |
| 241 | return "undefined" |
| 242 | } |
| 243 | str = strconv.FormatFloat(doubleVal.Data, 'f', -1, 64) |
| 244 | case "type.googleapis.com/base.v1.DoubleArrayValue": |
| 245 | doubleVal := &base.DoubleArrayValue{} |
| 246 | if err := any.UnmarshalTo(doubleVal); err != nil { |
| 247 | return "undefined" |
| 248 | } |
| 249 | var strs []string |
| 250 | for _, v := range doubleVal.GetData() { |
| 251 | strs = append(strs, strconv.FormatFloat(v, 'f', -1, 64)) |
| 252 | } |
| 253 | str = strings.Join(strs, ",") |
| 254 | case "type.googleapis.com/base.v1.IntegerValue": |
| 255 | intVal := &base.IntegerValue{} |
| 256 | if err := any.UnmarshalTo(intVal); err != nil { |
| 257 | return "undefined" |
| 258 | } |
| 259 | str = strconv.Itoa(int(intVal.Data)) |
| 260 | case "type.googleapis.com/base.v1.IntegerArrayValue": |
| 261 | intVal := &base.IntegerArrayValue{} |
| 262 | if err := any.UnmarshalTo(intVal); err != nil { |