Flatten karna wo hai jo ek nested document ko chahiye usse pehle ki wo kisi aisi cheez se mil sake jismein nesting ka koi concept nahi hai: environment file, spreadsheet column, translation catalogue, kuch bhi jo key-value pairs se bana ho jiski apni koi structure na ho.
JSON flattener ka upyog karna
Ek direction aur path style chunein, kyunki flattened path likhne ka koi
single standard nahi hai. Teen spellings di gayi hain, a.b.0, a/b/0 aur
a.b[0], aur tool batata hai kaunsa use ho raha hai chupke se ek choose
karne ke bajaye.
Flatten karna
{"user":{"name":"Ana","tags":["a","b"]},"empty":{}}
dotted style ke saath:
{
"user.name": "Ana",
"user.tags.0": "a",
"user.tags.1": "b",
"empty": {}
}
Nested keys dotted paths ban jaati hain, array elements ko apna index append hota hai, aur khali object apne aap mein value ke roop mein rakha jaata hai gayab hone ke bajaye, kyunki bina uske path dene ke liye kuch na hota aur document round trip survive nahi karta.
Do genuinely ambiguous cases, openly handled
Ek key jo separator character pehle se rakhti ho wo aisa path banati jo
koi sahi nahi padh sakta, to tool use naam se reject karta hai: dotted
style ke under "a.b" jaisi key reject hoti hai ek message ke saath jo
key ka naam batata hai aur alag path style suggest karta hai, chupke se
tuta hua path banane ke bajaye.
Doosri taraf, unflattening karte waqt, sirf digits se bana path segment ya to array index ho sakta hai ya object key jo numeric hai, aur flattened document mein ye bataya nahi jaata. “Digits are array indexes” isliye toggle hai: galat guess karna year-keyed object ko hazaron khali slots wale array mein badal deta hai.
Round tripping
Upar ka example unflatten karke, same path style ke saath, exact original document return karta hai: nested object, do-element array apne original order mein, aur khali object drop hone ke bajaye preserve hota hai. Ye round trip asli saboot hai ki path style ke dots aur indexes sahi se padhe gaye, kyunki array indexing ke baare mein galat assumption usually tabhi dikh jaata hai jab aap wapas convert karte hain aur original se compare karte hain.
Empty containers rakhein
Ye off karne par empty objects aur arrays bilkul drop ho jaate hain flat entries ke roop mein rakhne ke bajaye, jo useful hai jab flat form kisi aisi jagah ja raha ho jo bilkul empty value nahi rakh sakta, jaise kuch environment file formats.