価格が数値と文字列で混ざる
price が 100 と 150.5 は数値なのに、2 件目だけ "200" と引用符つきの文字列になっている例です。型が揃っていない項目が警告になり、内訳に文字列 1・数値 2 と出ます。
入力
JSON(オブジェクトの配列)
[{"price":100},{"price":"200"},{"price":150.5}]表の並び順
項目名が最初に出てきた順
結果
エラー 0 件・警告 1 件・情報 0 件
指摘(エラー・警告・情報)
- 警告 項目名「price」 項目名「price」の値の型が揃っていません(文字列 1、数値 2)。RFC 8259 3 節の値の種類で数えています。型を決め打ちして読む側で失敗するおそれがあるため、型をそろえるか、読み込み側で分岐してください。
| 判定 | 1 種類の項目名を集計しました |
|---|---|
| 配列の要素 | 3 個(うちオブジェクト 3 個) |
| 項目名の種類 | 1 種類 |
| null の総数 | 0 個 |
項目名ごとの集計
| キー | 出現数 | 出現率 | 型の内訳 | null の数 |
|---|---|---|---|---|
| price | 3 / 3 | 100.0% | 文字列 1 / 数値 2 | 0 |
検算(この結果になる理由)
RFC 8259 3 節では 100 と 150.5 は数値、"200" は文字列で、別の種類です。price は 3 個すべてにあるので出現率は 100.0% ですが、null を除いて 2 種類の型(文字列 1・数値 2)が混ざるため警告が 1 件になります。
判定の根拠は仕様と根拠に、仕様の出典とともにまとめています。自分の入力で試すにはツールをお使いください。
このツールの制約
- 集計するのは配列の直下のオブジェクトの項目名だけです。入れ子の中の項目(user の中の name など)は、user の値がオブジェクトであることを数えるだけで、中の項目名は集計しません。
- 数値は大きさや桁数を区別せず、すべて「数値」として数えます。整数と小数の別や、日付らしい文字列の判別はしません。
- JSON Lines(1 行に 1 つの JSON)や、コメント・末尾カンマを許す JSON5・JSONC は、JSON としてはエラーになります。
- ファイルは UTF-8 として読みます。Shift_JIS などほかの文字コードのファイルは文字化けすることがあります。
ご利用にあたって
- 集計の対象は JSON の構文と値の型に限ります。項目の意味や、値が正しいかどうかは判断しません。
- 大きな JSON はお使いの端末の性能によって処理に時間がかかることがあります。