मुख्य सामग्री पर जाएं
CuteJSON
↑↓ नेविगेट करें Enter चुनें Esc बंद करें

JSON ko bina precision khoye kaise format karein

प्रकाशित 3 मिनट का पाठ Akash Kinkar Pandey द्वारा

JSON format karna ek tool ki sabse simple cheez lagti hai: kuch spaces aur line breaks daal dena taaki insaan ise padh sakein. Zyadatar formatters bilkul yahi karte hain JSON.parse call karke aur phir JSON.stringify ko indent argument ke saath call karke. Ye round trip un JSON ke liye kaam karta hai jo aap haath se likhte hain aur chupke se toot jaata hai un JSON ke liye jo aap kahin aur se lete hain.

Do bugs jo round trip se aate hain

JSON.parse har number ko JavaScript double mein badalta hai. Ek double har integer ko Number.MAX_SAFE_INTEGER, jo ki 9007199254740991 hai, ke baad exact nahi rakh sakta. Ek snowflake ID, database primary key, ya nanosecond mein timestamp aasani se isse zyada ho sakta hai, aur jab aisa hota hai, to parsed value ko dobara serialize karne par digits badal jaati hain. 12345678901234567890 wapas 12345678901234567000 aa jaata hai. Kisi ko pata nahi chalta jab tak ID kahin downstream galat na ho.

Ye round trip number jaisi dikhne wali object keys ko bhi reorder karta hai, kyunki JSON.stringify JavaScript object ki khud ki enumerable keys ko ek specific order mein chalta hai: integer jaise keys pehle, ascending mein, phir baaki sab insertion order mein. {"2": "b", "1": "a" likha hua document wapas {"1": "a", "2": "b"} aa jaata hai, jo ki alag document hai bhale hi har value survive ho gayi.

JSON formatter kya karta hai

Ye tool kabhi JSON.parse nahi call karta. Ye aapka document tokenize karta hai, token stream ko RFC 8259 ke khilaf validate karta hai, aur un tokens se reprint karta hai. Ek number exact usi characters ke roop mein copy hota hai jo aapne likhe, double se re-encode nahi hota. Ek key jahan aapne rakhi wahin rehti hai.

{"2":"second","1":"first","id":12345678901234567890,"note":"line1\nline2"}

Format dabane par:

{
  "2": "second",
  "1": "first",
  "id": 12345678901234567890,
  "note": "line1\nline2"
}

"2" pehle "1" ke rehta hai, aur bees-digit wala id bilkul waisa hi wapas aata hai jaisa likha tha. Sirf whitespace badla.

Failure padhna

Agar document valid JSON nahi hai, to tool problematic line ko gutter mein mark karta hai aur asli galti ka naam batata hai. Closing brace se pehle ki trailing comma trailing comma ke roop mein report hoti hai, comma wali line par, file ke end par nahan jahan ek basic parser haar jaata hai.

Format vs Minify

Dono buttons wahi reprint karte hain tokens se; sirf whitespace alag hai. Format line breaks aur aapke dwara chuna gaya indent width (2 spaces, 4 spaces, ya tab) daalta hai. Minify har space, tab aur line break hata deta hai jo JSON ko zaroorat nahi hai. Koi bhi value nahi badalta, to dono ko jitni marzi baar dabaya ja sakta hai, ya beech mein switch kiya ja sakta bina dobara paste kiye.

Ise kisi document par try karein jismein lamba ID ho ya numeric keys wali config file ho, aur result ko JSON.parse se guzarne wale formatter se compare karein. Fark turant dikh jaata hai.

सभी लेखों पर लौटें