Estou tentando construir um programa que extraia dados de um JSON e os coloque em uma struct personalizada. O JSON contém chaves como "foo\u00a0", então não posso simplesmente usar Unmarshal
. Tentei usar tags struct e funcionou perfeitamente para a tag "regular", mas não quando uso o formato como \u...
.
Eu tentei com isso:
package main
import (
"encoding/json"
"fmt"
)
type MyStruct struct {
x string `json:"foobar\u0062"`
Name string `json:"Username"`
}
func main() {
data := []byte(`{"foobar\u0062": "some value", "Username": "xxx"}`)
var ms MyStruct
err := json.Unmarshal(data, &ms)
if err != nil {
panic(err)
}
fmt.Println(ms.x)
fmt.Println(ms.Name)
}
No exemplo acima, a chave Username
no JSON é acessível com o campo Name
da struct ms
. Esse não é o caso da key foobar\u0062
.
Por quê? Como posso obter o valor de foobar\u0062
, que é "algum valor" nesse caso ?