解组JSON不返回任何内容

解组JSON不返回任何内容,json,go,Json,Go,我有以下结构: type Translation struct{ Data string Translations []struct{ TranslatedText string SourceLanguage string } } type InputText struct { PlainText string TargetLanguage string Values url.Values } 还有一个方法,点击Google Translate API并

我有以下结构:

type Translation struct{
  Data string
  Translations []struct{
    TranslatedText string
    SourceLanguage string
  }
}
type InputText struct {
  PlainText string
  TargetLanguage string
  Values url.Values
}
还有一个方法,点击Google Translate API并返回我想要解组的JSON字符串:

func (i *InputText) TranslateString() (*Translation, error){
  if len(i.PlainText) == 0 {
    log.Fatal("No text specified")
  }
  if len(i.TargetLanguage) == 0 {
    log.Fatal("No target language specified")
  }

  i.Values = make(url.Values)
  var v = i.Values
  v.Set("target", i.TargetLanguage)
  v.Set("key", API_KEY)
  v.Set("q", i.PlainText)

  u := fmt.Sprintf("%s?%s", api, v.Encode())
  getResp, err := http.Get(u)  
  if err != nil{
    log.Fatal("error", err)
    return nil, err
  }
  defer getResp.Body.Close()  
  body, _ := ioutil.ReadAll(getResp.Body)
  t := new(Translation)
  json.Unmarshal(body, &t)

  return t, nil

}

func main(){
  input := &InputText{"My name is John, I was born in Nairobi and I am 31 years old", "ES", nil}
  translation, _ := input.TranslateString()
  fmt.Println(translation)
}
当我运行这段代码时,我得到的是打印出来的
&{[]}
,我以为没有返回JSON,但当我在TranslateString()方法中尝试这一点时:

它打印出:

{
 "data": {
  "translations": [
   {
    "translatedText": "Mi nombre es John, nació en Nairobi y tengo 31 años de edad",
    "detectedSourceLanguage": "en"
   }
  ]
 }
}

上面的代码是正确的,只有一个错误,我的结构是错误的!!应该是:

type Translation struct{
    Data struct {
        Translations []struct {
            TranslatedText string
            DetectedSourceLanguage string
        }
    }
}

我们为您昨天的问题提供了两个有效的示例答案。请尽量缩小你的问题范围。如果要从
detectedSourceLanguage
中解组,请确保标记
SourceLanguage
字段。如果我将返回的JSON放在字符串中,示例工作正常:jsonval:=
{}
,我还将字段SourceLanguage更改为detectedSourceLanguage,但运气不佳。。
type Translation struct{
    Data struct {
        Translations []struct {
            TranslatedText string
            DetectedSourceLanguage string
        }
    }
}