将复杂的json解组为复杂的数据结构在一个子结构上失败

时间:2017-10-29 15:03:14

标签: json go

我试图从Darksky解组一个JSON文件,因为它是相当复杂的JSON,我构建了一个子结构的结构。使用的结构的部分示例是:

  type current struct {
    Time                 uint    `json:"time"`                 //   1453402675,
    Summary              string  `json:"summary"`              //   "Rain",
    Icon                 string  `json:"icon"`                 //   "rain",
    NearestStormDistance uint    `json:"nearestStormDistance"` //   0,
    PrecipIntensity      float64 `json:"precipIntensity"`      //   0.1685,
    PrecipIntensityError float64 `json:"precipIntensityError"` //   0.0067,
    PrecipProbability    float64 `json:"precipProbability"`    //   1,
    PrecipType           string  `json:"precipType"`           //   "rain",
    Temperature          float64 `json:"temperature"`          //   48.71,
    ApparentTemperature  float64 `json:"apparentTemperature"`  //   46.93,
    Dewpoint             float64 `json:"dewPoint"`             //   47.7,
    Humidity             float64 `json:"humidity"`             //   0.96,
    WindSpeed            float64 `json:"windSpeed"`            //   4.64,
    WindBearing          int     `json:"windBearing"`          //   186,
    Visibility           float64 `json:"visibility"`           //   4.3,
    CloudCover           float64 `json:"cloudCover"`           //   0.73,
    Pressure             float64 `json:"pressure"`             //   1009.7,
    Ozone                float64 `json:"ozone"`                //   328.35
  }

  type forecastData struct {
    Latitude  float64 `json:"latitude"`  // 40.47780682531368,
    Longitude float64 `json:"longitude"` // -86.93875375799722,
    Timezone  string  `json:"timezone"`  // "America/Indiana/Indianapolis",
    Current   current
    Daily     daily
    Alerts    []alert
    Offset    int `json:"offset"` //    -4
  }

除了进入当前的部分之外,它正确地解组到整个结构中。我已经使用了这些类型,虽然这些类型的问题通常似乎只影响那个特定领域。我查看了这些声明,并在几个小时内看着它们。我在https://play.golang.org/p/XKaIxfvS8a的Go Playground上放了一个完整的例子。在这一点上,我将不胜感激任何建议。谢谢!

1 个答案:

答案 0 :(得分:3)

这是你所期望的吗?

https://play.golang.org/p/NBn0KL8DVw

如果是这样,您忘记在此行中为Current定义json字段:

Current   current `json:"currently"`