前提
Golangの勉強のため、言語処理100本ノック#20
(http://www.cl.ecei.tohoku.ac.jp/nlp100/#sec20)を解いています。
下記の事象に陥り、試行錯誤したものの自力で脱出できなくなってしまったため、
この実装の何が問題なのかをご指摘いただきたいです。
発生している問題・エラーメッセージ
その中の処理の一部で、JSONデータをデコードする処理を書こうとしたところ、
1行目のデータは処理できますが、2行目のデータで、
** json: cannot unmarshal object into Go value of type **というエラーが発生します。
実行結果: 2018/10/18 21:25:58 json: cannot unmarshal object into Go value of type []main.Wiki exit status 1
該当のソースコード
↓ file_scan()関数 に file(ファイルパス) を与えています。
type Wiki struct { Text string `json:"text"` Title string `json:"title"` } func file_scan(file string) { f, err := os.Open(file) if err != nil { log.Fatal(err) } defer f.Close() var lines []string var wikis []Wiki reader := bufio.NewReader(f) for line := ""; err == nil; line, err = reader.ReadString('\n') { lines = append(lines,line) } if err != io.EOF { log.Fatal(err) } for i := range lines { if lines[i] != "" { if err := json.Unmarshal([]byte(lines[i]), &wikis); err != nil { log.Fatal(err) } } } for _, p := range wikis { if p.Title == "イギリス" { fmt.Print(p.Text,"\n") } } }
なお、データの終端はこのようになっています
# tail -1 jawiki-country.json {"text": "#転送 [[アイルランド共和国]]", "title": "アイルランド"}
補足情報(FW/ツールのバージョンなど)
Golang のバージョンは1.10を使用しています。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。