JSON Formatlayıcı

Oflayn işləyirHeç nə yüklənmirPulsuz, qeydiyyatsız

Brauzerinizin öz JSON mühərriki ilə oxunur. Məlumatınızdaki tokenlər və qeydlər cihazdan çıxmır.

JSON-u formatlayın, sıxın və yoxlayın — yaxud YAML və ya CSV-yə çevirin. Xətalar dəqiq sətir və sütunu göstərir, dörd ən çox rast gəlinən qüsur isə adıyla bildirilir.

JSON-un icazə vermədikləri

JSON, JavaScript obyekt sintaksisinin ciddi altçoxluğudur və fərqlər hamını tutur. Bunlar hamısı yanlışdır:

YanlışDüzgünSəbəb
{name: "Ada"}{"name": "Ada"}Açarlar dırnaqda olmalıdır
{'a': 1}{"a": 1}Yalnız cüt dırnaq
[1, 2, 3,][1, 2, 3]Sonda vergül olmaz
{"a": 1} // qeyd{"a": 1}Şərh olmaz
{"a": undefined}{"a": null}undefined JSON dəyəri deyil
{"a": .5}{"a": 0.5}Əvvəldə rəqəm tələb olunur

Dəqiqlik həddi

JSON özü ədədin ölçüsünə hədd qoymur, amma JavaScript hər ədədi 64 bitlik sürüşən nöqtəli formata çevirir. 2⁵³ − 1-dən, yəni 9.007.199.254.740.991-dən sonra tam ədədlər səssizcə yuvarlaqlaşmağa başlayır. 9007199254740993 yazın — 9007199254740992 qaytarır: buraya yapışdırılan 64 bitlik verilənlər bazası ID-si nəzərəçarpmaz şəkildə səhv olacaq və heç bir formatlayıcı bunun qarşısını ala bilməz.

Düzgün həll API tərəfindədir: böyük identifikatorları mətn kimi göndərin. Verilənlər bazasındaki ID ilə JSON-dakı ID arasında uyğunsuzluğu araşdırırsınızsa, yoxlanmalı ilk şey budur.

Tez-tez verilən suallar

JSON-um niyə oxunmur?

Demək olar ki, həmişə dörd şeydən biri: sonuncu elementdən sonra artıq vergül, cüt dırnaq yerinə tək dırnaq, dırnağa alınmamış açarlar və ya şərh. Dördü də JavaScript-də qanunidir və JSON-da qadağandır. Bu alət dəqiq sətir və sütunu göstərir və dördündən hansını tapdığını adıyla bildirir — mühərrikin ifadəsini oxumağa ehtiyac qalmır.

Məlumatım hara göndərilir?

Heç yerə. Oxuma və formatlama brauzerin öz JSON mühərriki ilə yerli olaraq aparılır. Bu alət üçün bunun səsləndiyindən daha çox əhəmiyyəti var — insanlar onlayn formatlayıcılara tokenlər, müştəri qeydləri və daxili identifikatorlar olan API cavablarını adətən elə-belə yapışdırırlar.

Formatlama ilə sıxma arasında fərq nədir?

İkisi eyni məlumatı verir. Formatlama girinti və sətir keçidləri əlavə edir ki, insan quruluşu oxuya bilsin; sıxma isə hər artıq boşluğu atır ki, yük mümkün qədər kiçik olsun. Ötürmə və saxlama üçün sıxın, oxumaq və müqayisə etmək üçün formatlayın.

Böyük ədədlərim niyə dəyişdi?

JavaScript ədədləri 64 bitlik sürüşən nöqtəlidir, ona görə 9.007.199.254.740.991-dən böyük hər tam ədəd dəqiqliyini itirir — 64 bitlik verilənlər bazası ID-ləri və snowflake tipli identifikatorlarla bu, adi problemdir. ID-ləriniz bu qədər böyükdürsə, API onları mətn kimi göndərməlidir. Bu, alətin deyil, JavaScript-dəki JSON-un məhdudiyyətidir.

Oxşar alətlər