• Генерация случайной уникальной последовательности чисел?

    @Pavel_Timofeev Автор вопроса
    Спасибо всем, нашел вот такую библиотеку
    https://github.com/NebulousLabs/fastrand
    Ответ написан
    Комментировать
  • При парсинге json объекта на golang возращается пустота?

    @Pavel_Timofeev Автор вопроса
    да я ступил со структурой. Сделал правильно, но теперь почему то если получать данные из функции

    type AutoGenerated struct {
    	ID     string `json:"id"`
    	Result struct {
    		Maps struct {
    			Test []struct {
    				Value int `json:"Value"`
    			} `json:"*Test"`
    		} `json:"Maps"`
    		Disabled bool `json:"Disabled"`
    	} `json:"result"`
    	Error interface{} `json:"error"`
    }
    
    func getTest(param1 string) string {
    
    	var jsonStr = []byte(fmt.Sprintf(`{"id":"0", "jsonrpc":"2.0", "method":"getTest", "params":[{"Param":"%s"}]}`, param1))
    
    	req, err := http.NewRequest("POST", "Some Url", bytes.NewBuffer(jsonStr))
    
    	req.Header.Set("Content-Type", "application/json")
    
    	client := &http.Client{}
    	resp, err := client.Do(req)
    	if err != nil {
    		log.Error(err)
    		panic(err.Error())
    	}
    	defer resp.Body.Close()
    
    	body, _ := ioutil.ReadAll(resp.Body)
    
    	var data AutoGenerated
    	err = json.Unmarshal(body, &data)
    
    	fmt.PrintLn(data.Result.Maps.Test[0].Value)
             fmt.PrintLn(data.Result.Maps.Test)
    
    }


    fmt.PrintLn(data.Result.Maps.Test) возвращает [{6325}]

    А fmt.PrintLn(data.Result.Maps.Test[0].Value) возвращает
    http: panic serving 127.0.0.1:49180: runtime error: index out of range

    хотя такой код отрабатывает без ошибок

    package main
    
    import (
      "encoding/json"
      "fmt"
    )
    
    func main() {
      var jsonBlob = []byte(`
      {"id": "0",
    "result":{
      "Maps":{
        "*Test":[
          {"Value": 6325}
        ]
      },
      "Disabled": false
    },
    "error": null
    }`)
    
    type AutoGenerated struct {
    	ID     string `json:"id"`
    	Result struct {
    		Maps struct {
    			Test []struct {
    				Value int `json:"Value"`
    			} `json:"*Test"`
    		} `json:"Maps"`
    		Disabled bool `json:"Disabled"`
    	} `json:"result"`
    	Error interface{} `json:"error"`
    }
    
      var species AutoGenerated 
      err := json.Unmarshal(jsonBlob, &species)
      if err != nil {
        fmt.Println("error:", err)
      }
      fmt.PrinДт(species.Result.Maps.Test[0].Value)
    }
    Ответ написан