Barcha darslar

Usta · 12/12

🧠 Usta darajasi: grammatika va nozik holatlar

RFC 8259 grammatikasi, interoperability tuzoqlari, o'zingni sinab ko'rish.

JSON grammatikasi shu qadar kichikki, uni bitta kartochkaga sig'dirsa bo'ladi: value = object | array | string | number | true | false | null.

Grammatika qisqacha
object  = "{" [ member *( "," member ) ] "}"
member  = string ":" value
array   = "[" [ value *( "," value ) ] "]"
number  = [ "-" ] int [ frac ] [ exp ]
ws      = *( space | tab | LF | CR )
Nozik holatHaqiqat
Ildizda 42 yoki "salom"RFC 8259 bo'yicha to'g'ri JSON
Kalitlar tartibiSaqlanishi kafolatlanmaydi — tartibga tayanma
KodlashUTF-8 majburiy; BOM yuborma
Bo'sh kalit ""To'g'ri, lekin chalkash
-0To'g'ri raqam, lekin 0 ga teng deb hisoblanadi
Juda chuqur nestingStandart limit qo'ymaydi, parserlar qo'yadi
CommentHech qachon — hatto bitta ham

Interop tuzoqlari

Turli tillar bir xil JSON'ni turlicha o'qishi mumkin: Python True→true, PHP bo'sh massiv→[] yoki {}, Go nil map→null. Kontraktni schema bilan qot.

Usta bo'lish mezoni

Hujjatni ko'rib, uning schemasini boshingda tuza olsang; xatoni ko'rib, parser nima deyishini oldindan ayta olsang — sen ustasan. Endi Tasklar va AI murabbiy bo'limiga o't.

🛠 Mashq: Ildizda massiv bo'lgan, ichida turli tipli elementlar bo'lgan hujjat yoz.

mashq.json
Uy mustahkam — JSON to'g'ri ✅

Tekshiruv testi

1. `"salom"` — bu o'zi to'liq to'g'ri JSON hujjatmi?

2. JSON fayl qaysi kodlashda bo'lishi kerak?