猿问

Go中结构数组的索引超出范围

我是 Go 的新手,所以希望我能弄清楚我遇到的这个问题。我的问题是我试图迭代一个结构数组,但我一直遇到index out of range问题。出于这个问题的目的,我已经验证我的数组不是空的,但它实际上确实包含至少一个Services结构,并且file_content是包含我的有效字符串的字符串JSON


这是代表我遇到的问题的代码片段:


type service_config struct {

    Services []struct {

        Name    string

        Command string

        Request map[string]interface{}

    }

}


var ServiceConf = service_config{}


err_json := json.Unmarshal(file_content, &ServiceConf)


for _, s := range ServiceConf.Services {

  log.Println(s)

}

所以每次我运行我的代码时,我都会得到:


2014/03/14 18:19:53 http: panic serving [::1]:65448: runtime error: index out of range


{

  "services" : [

    {

      "name": "translation",

      "command": "to german",

      "request": {

        "key": "XXX",

        "url": "https://www.googleapis.com/language/translate/v2?"

      }

    }

  ]

}


慕容708150
浏览 239回答 1
1回答

繁花如伊

错误来自这一行fmt.Fprintf(w, "{ \"text\": \"Translated to German you said: '%s'\" }",     f.Data.Translations[0].TranslatedText)所以你没有得到任何Translations回报 - 该数组是空的。您可能想要检查resp.Status是否返回了错误。这不会作为错误返回 - 您需要自己检查。
随时随地看视频慕课网APP

相关分类

Go
我要回答