Sep 18, 2019/mod: Mar 5,2020 - 1 min read - プログラミング
Golangのjsonでハマる
Go言語(golang)を初めていじりました。
そしていきなりjsonの読み込みでハマったので記録。
もしかしたらGo言語プログラマーにとっては当たり前なのかもしれませんが、json読み込む時のstructの指定ですが、jsonでの名前の最初の文字を大文字にしたものをきちんと指定しないと読み込んでくれません。
型だけ合ってればいいだろと思ってたので少しハマりました。
package main
import (
"encoding/json"
"fmt"
)
// 名前がjsonと一致していてかつ最初が大文字じゃないと読めない
type MyDataCorrect struct { //読み込める
MyData [][]int
}
type MyDataWrong struct{ //読み込めない
mydata [][]int
}
func main() {
txt := "{\"mydata\" : [[1,2],[3,4],[5,6]]}"
bytes := []byte(txt)
var mydata MyDataCorrect
var mydata2 MyDataWrong
if err := json.Unmarshal(bytes, &mydata); err != nil {
fmt.Println(err)
}
if err := json.Unmarshal(bytes, &mydata2); err != nil {
fmt.Println(err)
}
fmt.Println(mydata) // => {[[1 2] [3 4] [5 6]]}
fmt.Println(mydata2) // => {[]}
}
ダイナミックに中身が変わるような場合に面倒くさそう。。。
comments powered by Disqus