形式が成功でも、値は失敗になる
次の自作画面で「文字列の得点」を選び、「二段階で確認」を押してください。形式は成功、値は失敗と表示されます。「正しい値」「範囲外」「末尾のカンマ」も順に試します。送信や保存は行わず、このページの中で処理します。

| 入力 | JSONの形式 | 今回の値の条件 |
|---|---|---|
| {"score":10} | 成功 | 成功 |
| {"score":"10"} | 成功 | 失敗・文字列 |
| {"score":11} | 成功 | 失敗・範囲外 |
| {"score":10,} | 失敗 | 未確認 |
引用符がある10は文字列
JSONは、名前と値の組や配列を文字で表す形式です。10は数値、"10"は文字列として読み取られます。どちらもJSONとしては書けますが、得点を整数として使うという今回の条件では、後者を受け付けません。
数値の11も文法上は問題ありません。この例が失敗にしているのは、編集部が「scoreは0〜10」と決めたためです。JSON全体の決まりではありません。必要な項目や範囲は、作っているアプリの仕様から決めます。
読み取りと、使うための条件を分ける
let data;
try { data = JSON.parse(input.value); }
catch { /* 形式のエラーを表示して終了 */ return; }
const ok = data !== null
&& typeof data === 'object' && !Array.isArray(data)
&& Number.isInteger(data.score)
&& data.score >= 0 && data.score <= 10;JSON.parseで読み取れなければ形式の失敗です。成功した後で、オブジェクトか、scoreが整数か、範囲内かを調べます。Number.isIntegerは、文字列を自動で整数へ変換しません。
入力をnull、[]、{}へ変えて試すと、形式は成功してもこの条件には合いません。データの形を先に調べることで、scoreの読み取りだけで別のエラーを起こさないようにしています。
自動修復に、得点の意味は任せない
末尾のカンマを消せば、今回の4番目は読み取れる形式になります。しかし、11を10に丸めたり、文字列を数値へ変えたりすることは、別の判断です。意図せず得点やIDを変えないよう、修復前の入力を残し、変わった箇所を比べてください。
この画面は形式と得点の条件だけを調べます。データの出所、権限、個人情報の有無、巨大な入力の処理、重複キーや大きな数の精度を網羅する検証器ではありません。秘密のデータを外部ツールへ貼り付ける練習にも使いません。
新着ツールから、確認する範囲を考えた
企画のきっかけは、Xで見つけたTsukuttaによるJFmtの紹介投稿です。作者本人の投稿ではありません。そこから公式ツールを開き、自作のJSONを入力してツリー表示まで確認しました。表示回数を利用者数と扱わず、流行しているとも断定しません。
記事の確認画面とコードは編集部の自作です。JFmtの画面・コードを転載したものではなく、特定ツールの安全性や全機能を評価した記事でもありません。形式の説明は上記MDN資料、得点の条件と4例の結果は独自の実装・検査に基づきます。
確認日は2026年10月11日。PCの4例と追加の空・null・配列、スマホ幅での表示を確認対象にしています。実サービスのデータ移行や全ブラウザーは未検証です。条件をAIに書かせた場合は、境界値の確認例も併せて試してください。