jsonファイルに問題がないように見えたけど、なぜかjson_decordでnullになったので、調べたらBOMが付きで保存されてて、悪さしてたよう
BOM付きかどうかの調べ方
参考
http://neos21.hatenablog.com/entry/2018/04/11/080000
自分はMacだったのでこちらのコマンドでできました
$ file hogehoge.json
結果
hogehoge.json: UTF-8 Unicode (with BOM) text
hogehoge.json は (with BOM)でした。
SublimeTextなら File|Save with Encoding から保存形式(BOMの有無も)選択できます。
そもそもなんでBOMが付いてたかというと、Windowsのメモ帳でjsonを開いた際についたみたいです。
メモ帳はデフォでBOM付きで保存するらしいです。
メモ帳はわかりませんが、notepad++にはBOM無し保存の設定があったのは確認しました。