FYI - "go vet" will catch this. Running "go vet" is always a good idea.

On Tuesday, January 28, 2020 at 9:00:05 AM UTC-5, Lutz Horn wrote:
>
> Remove the blank in ``json: "baz.bar"` and make it `json:"baz.bar"`. This 
> works: https://play.golang.com/p/i9SURYgGO66 
>
> ________________________________________ 
> Von: golan...@googlegroups.com <javascript:> <golan...@googlegroups.com 
> <javascript:>> im Auftrag von ma...@markhansen.co.nz <javascript:> <
> ma...@markhansen.co.nz <javascript:>> 
> 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 golan...@googlegroups.com <javascript:><mailto:
> golang-nuts+unsubscr...@googlegroups.com <javascript:>>. 
> 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/03ebed61-a185-4509-b52d-f3b8e8934153%40googlegroups.com.

Reply via email to