iPhoneで.jsonファイルをタップすると、起きることは2つのどちらかです。改行のない文字の壁が表示されるか、何も表示されないか。iOSはJSONファイルがテキストだとは知っています。ただ、それが構造を持つテキストだとは分からないので、バイト列をそのまま見せて、波かっこの読み解きは任せきりです。
10行ほどの設定ファイルならそれで十分ですが、APIのレスポンスには役に立ちません。ここでは、iPhoneとiPadでJSONファイルをきちんと読む方法を、無料で標準搭載のものから本格的なエディタまで順に紹介します。
先に結論
- 小さなファイルをちょっと見たいだけ: ファイルAppのプレビュー。無料で標準搭載ですが、整形はされません。
- 読みやすくしたい: 整形(インデント)できるコードエディタアプリ、または折りたたみ式のツリーを備えたJSONアプリ。
- 編集して保存し直したい: 入力中に検証してくれるJSONエディタ。解析できないファイルを保存してしまうことがありません。
- トークン、キー、顧客データを含むものを、よく知らない「JSON整形」サイトに貼り付けないでください。
まず、ファイルをiPhoneに取り込む
iPhoneに届くJSONの多くは次の3通りのどれかで、それぞれ保存される場所が違います。
- メールの添付ファイル: タップして共有ボタンを押し、“ファイル”に保存を選びます。保存するまではメールの中にあるだけで、ほとんどのアプリからは見えません。
- MacからAirDrop: ファイルAppの「ダウンロード」に入ります。AirDropのシートでアプリを選べば、そのアプリに直接渡せます。
- URL: APIのエンドポイントをSafariで開くと、生のテキストで表示されます。長押ししてページを保存するか、もっと簡単に、URLを直接取得できるアプリを使ってください。
方法1: ファイルAppのプレビュー
ファイルを開き、目的のファイルをタップします。クイックルックがプレーンテキストとして表示します。
限界: 実際のJSONでは、ほぼ最初の段階で行き詰まります。APIのレスポンスや書き出したファイルの多くはミニファイされていて、ドキュメント全体が1行です。クイックルックはそれを折り返して、インデントのない密な段落にしてしまいます。プレビュー内には使える検索がなく、折りたたみもできず、編集もできません。
分かるのは「これは自分が思っているファイルか?」という一点だけです。
方法2: コードエディタ
汎用のコードエディタは、JSONを数ある言語のひとつとして扱います。シンタックスハイライト、行番号、そして多くの場合、1行に連なった文字列をインデント付きのドキュメントにしてくれる整形(「Pretty Print」)コマンドがあります。
iOSではRunestoneが無料で使いやすく、Textasticは昔からある有料の定番です。どちらもファイルAppからファイルをそのまま開けます。
限界: コードエディタはJSONをテキストとして見せます。スマートフォンの画面で2,000行のインデント付きドキュメントとなると、8階層も奥にある値を探すだけで延々とスクロールすることになります。構文を壊したときも助けてくれません。カンマが1つ足りなくても他の文字と見分けがつかず、後続の処理がファイルを受け付けなくなって初めて気づきます。
方法3: JSONアプリ
専用アプリの違いは、構造を理解していることです。ドキュメントをキーのツリーとして表示し、開閉できます。どこが不正なのかを正確に示し、テキストではなくキーや値を対象に検索できます。


iPhoneとiPadのSmart Jsonは、1つのドキュメントをテキスト、ツリー、グラフの3通りで同時に開き、どれでも編集できます。ファイルAppとiCloud Driveからファイルを開き、どのアプリの共有シートからでもJSONを受け取れます。クリップボードから新規ドキュメントを作ったり、URLから取得したりもでき、APIが必要とするなら独自のリクエストヘッダも付けられます。
JSONファイルをシンタックスハイライト付きのテキスト、検索できるツリー、タップできるグラフで開きます。不正なJSONは行と列を示して知らせ、オフラインでも動作します。
できることこれは私たち自身のアプリなので、おすすめの言葉は割り引いて受け取ってください。上の比較だけで成り立っていなければ意味がありません。
オンライン整形サイトの落とし穴
スマートフォンで「JSON ビューア」と検索すると、貼り付けたものを整形してくれるWebサイトに行き着きます。公開データなら問題ありません。それ以外なら、貼り付けようとしているものをよく考えてください。
- APIのレスポンスには、アクセストークン、セッションID、APIキーが含まれていることがよくあります。
- 書き出したデータには、氏名、メールアドレス、住所が含まれていることがよくあります。
- こうしたサイトの一部には、貼り付けた内容をサーバーに保存する「保存」や「共有」のリンクがあります。セキュリティ研究者は、認証情報を含むそうした保存済みスニペットが大量に、誰でも取得できる状態で公開されているのを見つけています。
ローカルのアプリなら、情報が外に出るリスクはありません。どうしてもWebサイトを使うなら、アップロードせずブラウザ内で整形するものを選び、保存機能は絶対に使わないでください。
ファイルが開かない、または正しく開かないとき
- 「Invalid JSON」と出る、または画面が空白: ファイルが壊れています。原因は1文字だけということも多いです。不正なJSONの直し方で、よくあるエラーをひととおり確認できます。
- iPhoneで入力したファイルに曲がった引用符が入っている: iOSの「スマート句読点」は、入力中に
"を“に置き換えますが、JSONが受け付けるのはまっすぐな引用符だけです。JSONを手で編集する前に、設定 → 一般 → キーボード → スマート句読点をオフにしてください。 - 実は
.jsonlやNDJSONだった: 1つのドキュメントではなく、1行に1つのJSONオブジェクトが並んだ形式です。ほとんどのビューアは単一のドキュメントを前提としているため、2行目の先頭でエラーを報告します。 - ファイルが巨大: ネイティブアプリは、Webページやテキストプレビューよりはるかに大きなファイルを扱えます。後者は真っ先にフリーズしがちです。数十MBのファイルなら、ブラウザのタブではなくアプリで開いてください。
iPadの場合
ここまでの内容はすべて当てはまります。そのうえで、活用したい改善点が2つあります。Split Viewを使えば、デバッグ中のアプリやブラウザの横にJSONを置いておけます。外付けキーボードがあれば、手での編集も現実的になります。検索や取り消しのキーボードショートカットが使えるJSONエディタなら、ノートパソコンで作業するのに近い感覚です。