Remove the blank in ``json: "baz.bar"` and make it `json:"baz.bar"`. This works: https://play.golang.com/p/i9SURYgGO66
________________________________________ Von: golang-nuts@googlegroups.com <golang-nuts@googlegroups.com> im Auftrag von m...@markhansen.co.nz <m...@markhansen.co.nz> Gesendet: Dienstag, 28. Januar 2020 12:14 An: golang-nuts Betreff: [go-nuts] JSON: Having trouble parsing map keys with dots like {"foo.bar":"baz"} Hi folks, for background, I'm trying to read the Kaiterra API<https://www.kaiterra.com/dev/#overview> using encoding/json, which has JSON values like this: {"id":"00000000-0001-0001-0000-00007e57c0de","info.aqi":{"ts":"2018-03-26T08:53:20Z","data":{"pm10":120,"pm25":214}}} I'm having trouble parsing the "info.aqi" field using encoding/json. I set the "info.aqi" field as a struct tag `json: "info.aqi"`, but the struct is just empty after parsing. It seems more likely I'm holding it wrong, but I'm wondering if perhaps this is a bug in Go's JSON parsing? I thought I'd make a minimal repro test, which fails: package main import ( "encoding/json" "strings" "testing" ) type Foo struct { BazBar string `json: "baz.bar"` Qux string `json: "qux"` } func TestDotKeyJsonParsing(t *testing.T) { f := &Foo{} d := json.NewDecoder(strings.NewReader(`{"baz.bar": "hello", "qux": "hi"}`)) err := d.Decode(f) if err != nil { t.Fatalf("json decoding failed: %v", err) } if f.Qux != "hi" { t.Fatalf("Expected f.Qux to be hi") } if f.BazBar != "hello" { t.Errorf("wanted: hello, got: %q", f.BazBar) } } And the Qux field passes fine, but the BazBar field is not set, so the test fails there: --- FAIL: TestDotKeyJsonParsing (0.00s) /Users/mark/projects/godot/dot_test.go:26: wanted: hello, got: "" -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com<mailto:golang-nuts+unsubscr...@googlegroups.com>. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/539f857c-d96a-45af-9a74-c328753bd12d%40googlegroups.com<https://groups.google.com/d/msgid/golang-nuts/539f857c-d96a-45af-9a74-c328753bd12d%40googlegroups.com?utm_medium=email&utm_source=footer>. -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/AM7P191MB1060C7A5A59B82BF870605209E0A0%40AM7P191MB1060.EURP191.PROD.OUTLOOK.COM.