JSON سے TOML کنورٹر
بائیں طرف JSON آبجیکٹ پیسٹ کریں، دائیں طرف TOML حاصل کریں۔ @iarna/toml کے ذریعے سخت سپیک کی پیروی۔ کوئی اپ لوڈ نہیں۔
- بائیں ٹیکسٹ ایریا میں JSON آبجیکٹ پیسٹ کریں۔
- "TOML میں تبدیل کریں" پر کلک کریں۔ ٹاپ-لیول JSON آبجیکٹ ہونا چاہیے — ایرے نہیں۔
- TOML آؤٹ پٹ کاپی یا ڈاؤن لوڈ کریں۔
- ریکارڈز کی فہرست کے لیے TOML ٹیبلز کا ایرے استعمال کریں — پہلے `{ items: [...] }` کے ساتھ لپیٹیں۔
یہ کیا کرتا ہے؟
@iarna/toml کے ذریعے JSON آبجیکٹ کو TOML 1.0-تعمیل دستاویز میں تبدیل کرتا ہے۔ نیسٹڈ آبجیکٹس `[section]` ہیڈرز بن جاتے ہیں؛ آبجیکٹس کے ایرے `[[items]]` ایرے-آف-ٹیبلز بلاکس بن جاتے ہیں؛ سٹرنگز، نمبرز، بولینز، اور ISO 8601 ڈیٹ ٹائم سٹرنگز TOML پرائمیٹیوز سے میپ ہوتے ہیں۔ آؤٹ پٹ کو کینونیکل ترتیب میں سورٹ کیا جاتا ہے — سخت TOML پارسرز کے ساتھ مطابقت کے لیے کیز سب-ٹیبلز سے پہلے ظاہر ہوتی ہیں۔
مثال
JSON ان پٹ:
{
"name": "Ada",
"active": true,
"address": {
"city": "London"
}
} TOML آؤٹ پٹ:
name = "Ada"
active = true
[address]
city = "London" عام JSON سے TOML کے مسائل
TOML کے ٹاپ-لیول قواعد JSON سے زیادہ سخت ہیں۔ ذیل کے پیٹرنز وضاحت کرتے ہیں کہ کیوں ایک JSON ویلیو جو "کام کرنی چاہیے" ناکام ہو سکتی ہے۔
- ٹاپ-لیول ایرے۔ TOML ٹاپ-لیول JSON ایرے کی نمائندگی نہیں کر سکتا۔ اسے لپیٹیں: `{"items": [...]}`۔ نتیجہ `[[items]]` کے تحت TOML ایرے-آف-ٹیبلز بن جاتا ہے۔
- ٹاپ-لیول اسکیلر۔ ایک ننگا `42` یا `"hello"` JSON دستاویز کے پاس TOML میں منسلک ہونے کے لیے کوئی کلید نہیں۔ اسے ایک آبجیکٹ میں لپیٹیں: `{"value": 42}`۔
- null ویلیوز۔ TOML میں null قسم نہیں ہے۔ سیریلائزر ان کیز کو مکمل طور پر چھوڑ دیتا ہے جن کی JSON ویلیو null ہے۔ اگر آپ کو "صراحتاً کچھ نہیں" کی نمائندگی کرنی ہو، خالی سٹرنگ `""` یا ایک سینٹینل ویلیو استعمال کریں، آپ کے ڈاؤن سٹریم کوڈ پر منحصر ہے۔
- مخلوط قسم کے ایرے۔ TOML 1.0 `[1, "two"]` کی اجازت دیتا ہے، لیکن لیگیسی 0.5 پارسرز نہیں۔ اگر آپ کے TOML کو 0.5 ٹولنگ کے ذریعے راؤنڈ-ٹرپ کرنا ہو، تبدیل کرنے سے پہلے JSON میں ایرے کو یکساں رکھیں۔
- TOML آؤٹ پٹ میں ڈاٹس کے ساتھ کیز۔ `"my.key"` جیسی JSON کلید TOML "ڈاٹڈ کلید" پاتھ بن جاتی ہے، جسے TOML پارسرز نیسٹڈ کے طور پر سمجھیں گے۔ کلید کے نام میں لٹرل ڈاٹ کو محفوظ رکھنے کے لیے، سیریلائزر اسے کوٹ کرتا ہے: `"my.key" = ...` — لیکن صارفین اب بھی اسے پاتھ کے طور پر پارس کر سکتے ہیں۔
- NaN / Infinity۔ TOML 1.0 `nan`, `inf`, `-inf` لٹرلز کی حمایت کرتا ہے۔ JSON ان کی نمائندگی نہیں کرتا — وہ عام طور پر سٹرنگز `"NaN"`, `"Infinity"` وغیرہ کے طور پر آتے ہیں۔ اگر آپ کو حقیقی TOML فلوٹ خاص ویلیوز چاہیئیں تو دستی طور پر تبدیل کریں۔
اکثر پوچھے جانے والے سوالات
تاریخیں کیسے دکھائی جاتی ہیں؟
JSON تاریخیں ISO 8601 سٹرنگز ہیں، مثلاً `"2026-04-26T12:00:00Z"`۔ سیریلائزر انہیں TOML میں سٹرنگز کے طور پر رکھتا ہے — نیٹیو ڈیٹ ٹائم اقسام کے طور پر نہیں۔ نیٹیو TOML ڈیٹ ٹائم حاصل کرنے کے لیے، آپ کو JavaScript سائڈ پر صحیح ٹائپ مارکر کے ساتھ ویلیو کو پری-پراسیس اور ایمٹ کرنا پڑے گا۔
کیا گہرائی سے نیسٹڈ آبجیکٹس چپٹے ہوتے ہیں؟
نہیں — وہ نیسٹڈ `[a.b.c]` ہیڈرز بن جاتے ہیں۔ ہر نیسٹنگ کی سطح ایک ڈاٹ-جوڑا ہیڈر پاتھ بن جاتی ہے۔ بہت گہری ساختوں کے لیے، آؤٹ پٹ میں طویل ہیڈر لائنیں ہو سکتی ہیں؛ یہ صرف TOML کا گہرائی ظاہر کرنے کا طریقہ ہے۔
کیا کلید کا ترتیب محفوظ رہے گا؟
زیادہ تر۔ سیریلائزر ترتیب کو کینونیکلائز کرتا ہے تاکہ پرائمیٹیوز سب-ٹیبلز سے پہلے آئیں (ایک TOML قاعدہ)۔ ہر ٹیئر کے اندر، JSON انسرشن ترتیب محفوظ ہے۔
میں آؤٹ پٹ پر TOML ان لائن ٹیبل کیسے حاصل کروں؟
آپ نہیں کر سکتے — سیریلائزر ہمیشہ `[section]` بلاک ہیڈرز استعمال کرتا ہے، کبھی ان لائن ٹیبلز نہیں۔ اگر آپ کو ان لائن آؤٹ پٹ چاہیے، نتیجہ کو پوسٹ-پراسیس کریں۔ ان لائن ٹیبلز TOML کی پڑھنے کی آسانی کا فیچر ہیں، مختلف ڈیٹا شکل نہیں۔
کیا میرا JSON اپ لوڈ ہوتا ہے؟
نہیں۔ سب کچھ آپ کے براؤزر میں چلتا ہے — آپ کا ان پٹ اس صفحے کے JavaScript کے ذریعے پارس اور سیریلائز ہوتا ہے اور کبھی کسی سرور پر نہیں بھیجا جاتا۔
کیا میں JSON → TOML → JSON راؤنڈ-ٹرپ کر سکتا ہوں؟
حمایت یافتہ اقسام کے لیے (سٹرنگ، نمبر، بولین، نیسٹڈ آبجیکٹ، آبجیکٹس کا ایرے)، جی ہاں۔ راؤنڈ-ٹرپس null ویلیوز کھو دیتے ہیں (TOML میں null نہیں ہے) اور کلید کا ترتیب معیاری بن سکتا ہے۔