Szacunek rozmiaru JSON

Wpisz znaki, model i overhead. 1000 i utf8min dają 1000 B. 1000 i utf16 dają 2000 B. 500 i 64 dają 564 B. Heurystyka, nie JSON.stringify.

To znaki razy bajty na znak plus overhead. Karta nie robi JSON.stringify. Narzut Base64 jest na rozmiarze Base64.

Dane

Opcje dodatkowe (opcjonalnie)

Wynik

Wprowadź dane i kliknij Oblicz.

Jak to działa?

Szacunek rozmiaru JSON na tej karcie mnoży znaki przez model. 1000 i utf8min dają 1000 B. 1000 i utf16 dają 2000 B. 500, utf8min i 64 dają 564 B. utf8min to 1 B/znak, utf16 to 2, utf8max to 4. To nie stringify dokumentu.

Pole json-len jest długością. Select json-encoding w przykładach to utf8min albo utf16. Pole json-overhead dodaje stałe bajty. 1000 × 1 + 0 = 1000. 1000 × 2 = 2000. 500 × 1 + 64 = 564. Custom B/znak nie jest w tych trzech kartach.

1000 B nie jest Blob z JSON.stringify. 2000 B nie schodzi z parsera. 564 B nie jest plikiem z dysku. Wpisujesz długość sam. Karta nie czyta obiektu.

Rozmiar Base64 obok liczy narzut 4 na 3. Token JWT szacuje znaki tokena. Tu 1000 znaków zostaje 1000 B przy utf8min.

Wpisz 1000, zostaw utf8min i overhead 0, potem Oblicz. Wynik to 1000 B. Przecinek nie jest potrzebny. Zero znaków zostawia 0 B. To nie parser JSON.

1000 i utf8min dają 1000 B. 1000 i utf16 dają 2000 B. 500 i 64 dają 564 B. Inny model przy 1000 zmienia kartę.

Wzór

bajty = znaki × B/znak + overhead. utf8min=1, utf16=2, utf8max=4. Heurystyka, nie stringify.

Jak korzystać

  1. Wpisz 1000 znaków i zostaw utf8min oraz overhead 0.
  2. Kliknij Oblicz. Wynik to 1000 B.
  3. 1000 i utf16 dają 2000 B. 500 i overhead 64 dają 564 B.
  4. To znaki razy bajty, nie JSON.stringify.
  5. Narzut Base64 licz na rozmiarze Base64.

1000 znaków utf8min = 1000 B

Znaki razy B/znak plus overhead. 1000 i utf8min dają 1000 B. To nie stringify.

Szacunek
Długość razy model. 1000 i utf16 zostawia 2000 B. Nie parser.
rozmiaru
Wynik w B. 500 i 64 dają 564 B. Nie Blob z stringify.
JSON
Heurystyka z pól. utf8min to 1 B/znak. Karta nie czyta obiektu.

Przykłady

Przykład 1

  • 1000 znaków
  • utf8min
  • overhead 0

1000 B

Jaki rozmiar JSON przy 1000 znakach i utf8min? 1000 B. Znaki razy bajty, nie stringify.

Przykład 2

  • 1000 znaków
  • utf16
  • overhead 0

2000 B

Ile przy 1000 i utf16? 2000 B. Dwa bajty na znak.

Przykład 3

  • 500 znaków
  • utf8min
  • overhead 64

564 B

Ile przy 500 i overhead 64? 564 B.

Powiązane kalkulatory

Najczęstsze pytania

Ile przy 1000 znakach i utf8min?

1000 B. 1000 × 1 + 0. Nie JSON.stringify.

Ile przy 1000 i utf16?

2000 B. Dwa bajty na znak, overhead 0.

Ile przy 500 i overhead 64?

564 B. 500 × 1 + 64.

Czy karta robi stringify?

Nie. Nie ma obiektu i nie ma JSON.stringify. Sama długość.

Co znaczy utf8max?

4 B na znak. Przykłady trzymają utf8min albo utf16.

Po co overhead?

Stałe bajty do długości. 64 przy 500 daje 564 B.

Czy zero znaków liczy?

Tak jako 0 B plus overhead. Bez liczby karta się zatrzymuje.

Gdzie liczysz Base64?

Na rozmiarze Base64. Tu zostaje model B/znak.

Czy to parser JSON?

Nie. Heurystyka znaków. Błędny JSON i tak da te same bajty z długości.

Co oznacza rozmiar JSON w praktyce

Rozmiar payloadu to bajty tekstu JSON na przewodzie lub na dysku — nie liczba pól w obiekcie. Ten kalkulator szacuje: liczba znaków × bajty/znak + opcjonalny overhead.

Domyślny model UTF-8 min (1 B/znak ASCII) jest sensowny dla typowych API. To heurystyka: dokładny pomiar to TextEncoder / Buffer.byteLength(JSON.stringify(...)).

Co zwiększa rozmiar payloadu

  • Długie nazwy kluczy powtarzane w każdej pozycji tablicy.
  • Głębokie zagnieżdżenia — każdy poziom dokłada {}, [], przecinki.
  • Długie stringi, szczególnie z escapingiem (", \, kontrolne).
  • Whitespace w pretty-print (spacje, nowe linie) vs zwarta minifikacja.

Pretty JSON vs minified (i vs transfer)

Pretty-print jest do czytania przez człowieka. Na API zwykle wysyłasz minified JSON. Ten kalkulator widzi tylko długość, którą podasz — porównaj obie wersje osobno.

  • Policz znaki pretty (np. w edytorze) → wynik A.
  • Minifikuj (JSON.stringify bez spacji) → wynik B — zwykle wyraźnie mniejszy.
  • Gzip obniża transfer, ale limity gateway często liczą bajty przed kompresją.

Powtarzane klucze vs wartości

Tablica 1000 obiektów z kluczami userId, createdAt, status płaci za każdą nazwę tysiąckrotnie. Skrócenie kluczy albo protokół binarny (Protobuf/MessagePack) tnie ten koszt; JSON zostaje czytelny, ale gadatliwy.

Wartości też ważą: Base64 w polu stringa najpierw puchnie ~33% (osobny kalkulator), potem wchodzi do długości JSON.

Escaping, Unicode i transport

  • UTF-8 min — ASCII = 1 B/znak (typowe API).
  • UTF-8 max — pesymistycznie do 4 B (emoji, rzadkie znaki).
  • UTF-16 — semantyka niektórych stringów w runtime JS; to nie to samo co bajty HTTP body.
  • Escaping cudzysłowów i backslashy wydłuża string ponad „gołą” treść użytkownika.

Przykłady: znaki → szacunek (UTF-8 min)

Wpisz długość w formularzu — tabela pokazuje rząd wielkości.

ScenariuszZnaki (orient.)Szacunek BKomentarz
Mały obiekt API200200ASCII, minified
Pretty 1 obiekt500500whitespace wliczony
Tablica 100× te same klucze80008000klucze ×100
String z wieloma "+escwięcej niż treśćescaping kosztuje

To ilustracje — dokładny wynik zależy od Twojej liczby znaków i modelu.

FAQ — rozmiar JSON

Jak czytać heurystykę i kiedy zmierzyć payload dokładnie.

Czy to dokładny rozmiar mojego JSON-a?
Nie — to szacunek z długości znaków. Dokładnie: TextEncoder / Buffer.byteLength(JSON.stringify(...)).
Jaki model dla HTTP API?
Zwykle UTF-8 min dla ASCII. Przy dużej ilości Unicode sprawdź UTF-8 max albo zmierz body.
Do czego jest pole Overhead?
Opcjonalny dodatek (wrapper, framing, stały nagłówek). Domyślnie 0.
Pretty vs minified — czy narzędzie to rozróżnia?
Widzi tylko podaną liczbę znaków. Podaj długość pretty i minified osobno, żeby porównać.
Czy gzip zmienia ten wynik?
Nie bezpośrednio — to rozmiar tekstu. Gzip obniża transfer; limity gateway często nadal patrzą na nieskompresowane bajty.
Jak Base64 w polu wpływa na JSON?
Najpierw policz narzut Base64 (~33%), potem włącz długość stringa do szacunku JSON.
Czy puste tablice/obiekty „nic nie ważą”?
Ważą znaki strukturalne ([], {}, przecinki, klucze). Przy dużej liczbie elementów to się sumuje.
UTF-16 w kalkulatorze a response HTTP?
HTTP body JSON zwykle jest UTF-8. UTF-16 tu służy do modeli runtime string — nie myl z Content-Length odpowiedzi.