Difference between revisions of "Golang Maps"

From UVOO Tech Wiki
Jump to navigation Jump to search
(Created page with "''' package main import ( // "string" "fmt" "github.com/go-resty/resty/v2" "encoding/json" "reflect" ) var PDAuthToken = "" var url = "https://api.pagerd...")
 
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
'''
+
```
 
package main
 
package main
  
Line 37: Line 37:
 
     test1()
 
     test1()
 
}
 
}
'''
+
```
 +
 
 +
# Nested Structs
 +
https://stackoverflow.com/questions/24809235/how-to-initialize-a-nested-struct
 +
```
 +
type Configuration struct {
 +
    Val string
 +
    Proxy Proxy
 +
}
 +
 
 +
type Proxy struct {
 +
    Address string
 +
    Port    string
 +
}
 +
 
 +
func main() {
 +
 
 +
    c := &Configuration{
 +
        Val: "test",
 +
        Proxy: Proxy{
 +
            Address: "addr",
 +
            Port:    "port",
 +
        },
 +
    }
 +
    fmt.Println(c)
 +
    fmt.Println(c.Proxy.Address)
 +
}
 +
```

Latest revision as of 01:04, 4 August 2021

package main

import (
    // "string"
    "fmt"
    "github.com/go-resty/resty/v2"
    "encoding/json"
    "reflect"
)

var PDAuthToken = ""
var url = "https://api.pagerduty.com/services/XXXXXXX"

func test1() {
   client := resty.New()
   rsp,err := client.R().SetHeader("Accept", "application/json").SetHeader("Authorization", "Token token="+PDAuthToken).Get(url)
    if err != nil {
        fmt.Println(err)
        return
    }
    rspBody := rsp.Body()
    rspJSON := string(rspBody)
    // Declared an empty map interface
    var result map[string]interface{}
    // Unmarshal or Decode the JSON to the interface.
    json.Unmarshal([]byte(rspJSON), &result)

    fmt.Println("Type:", reflect.TypeOf(result))
    fmt.Println("Service :", result["service"])
    service, valid := result["service"].(map[string]interface{})
    fmt.Println("service_alert_grouping_timeout :", service["alert_grouping_timeout"])
     _ = valid
}

func main(){
    test1()
}

Nested Structs

https://stackoverflow.com/questions/24809235/how-to-initialize-a-nested-struct

type Configuration struct {
    Val string
    Proxy Proxy
}

type Proxy struct {
    Address string
    Port    string
}

func main() {

    c := &Configuration{
        Val: "test",
        Proxy: Proxy{
            Address: "addr",
            Port:    "port",
        },
    }
    fmt.Println(c)
    fmt.Println(c.Proxy.Address)
}