It looks like weather[0] doesn’t have an icon property. In the response snippet below, at some point, weather[0] was the one with id: 701, and that didn’t have an icon property either. id: 701 only gained an icon property when id: 600 was added.
I’m a little confused about the weather API’s icon property (weather[0].icon). For some locations I get the path to a PNG icon, but for others, the icon property doesn’t exist.
For example, the JSON I received (below) doesn’t have an icon property for weather[0], but there’s one for weather[1]. At some point, the weather array started at id: 600, and that didn’t have an icon property either.