@fribbledom i think one partially unanswered question remained about the decoding JSON & putting it into a struct:

when you decode the JSON and bind it to j, then call j.City without City having been in the JSON, would that call keyerror, or rather pass nil silently, so you get the default empty string in the struct?

If there's no "City" key in the JSON itself, then it would _not_ return an error. It tries to fill the struct to the best of its abilities. j.City wouldn't get touched in such a case and simply remain an empty string.

Similarly: if there's a "City" in the JSON, but no "j.City" member, it would simply ignore that and move on with the next value.