JSON / byte検算ガイド
JSON本文と送信文字列のbyte数を分けて検算する
JSONを読み込んだ後の「データ」と、APIへ送るserialized文字列は同じ見た目でもbyte数が違うことがあります。API上限に合わせるときは、実際に送るUTF-8文字列を測ります。
JSON / byte検算ガイド
JSONを読み込んだ後の「データ」と、APIへ送るserialized文字列は同じ見た目でもbyte数が違うことがあります。API上限に合わせるときは、実際に送るUTF-8文字列を測ります。
| fixture | 文字数 | UTF-8 bytes | 判定対象 |
|---|---|---|---|
| unicode | 29 | 39 | 送信文字列 |
| escaped | 54 | 54 | 送信文字列 |
| ascii | 29 | 29 | 送信文字列 |
API上限と比べるのは、整形前後やエスケープを含む、実際に送る文字列です。
unicode.jsonは日本語本文、escaped.txtは\u表記のserialized文字列、ascii.jsonはASCII本文です。expected.csvのbyte数は改行を含めず、各行の内容をUTF-8で測った値です。
const bytes = new TextEncoder().encode(serialized).length; +// compare bytes with the API limit
文字数が同じでも、Unicode文字はUTF-8 bytesが増えます。エスケープは文字列自体が長くなる場合があります。
このガイドはブラウザー内の静的資料です。JSONや入力内容を外部へ送信しません。
非ASCII文字、escape、空白、改行、JSON serializerの設定が変わるとbyte数も変わります。API limitの判定は、実際のwire stringを測ってから行います。