GoでJsonの文字を取得しようとしています。
以下HPを参考にしてみたのですが、「インターフェイス{}はnilであり、map [string]interface{}ではありません」と表示され、できませんでした。
https://dev.classmethod.jp/articles/golang-json-read-and-write/
test.json
1{ 2 "animal": { 3 "name": "ぽてと" 4 } 5}
test.go
1 func loadJson(inputPath string) interface{} { 2 byteArray, _ := ioutil.ReadFile(inputPath) 3 var jsonObj interface{} 4 _ = json.Unmarshal(byteArray, &jsonObj) 5 return jsonObj 6} 7func main() { 8jsonObj := loadJson("/go/test.json") 9fmt.Println(jsonObj.(map[string]interface{})["animal"].([]interface{})[0].(map[string]interface{})["name"].(string)) 10}
どうすればGoで「ぽてと」を取得できるのでしょうか?
おそらく質問文を書く際の間違いかと思うのですが、
jsonObj := loadJson("/go/test.go")
は
jsonObj := loadJson("/go/test.json")
ですよね?
失礼しました。
おっしゃる通りでしたので修正いたしました。
回答2件
あなたの回答
tips
プレビュー