ToolDeck

JSON থেকে TOML রূপান্তরকারী

JSON কে TOML ফরম্যাটে রূপান্তর করুন

একটি উদাহরণ চেষ্টা করুন

JSON ইনপুট

TOML আউটপুট

স্থানীয়ভাবে চলে · গোপন তথ্য পেস্ট করা নিরাপদ
TOML আউটপুট এখানে দেখা যাবে…

JSON থেকে TOML রূপান্তর কী?

JSON থেকে TOML রূপান্তর হলো JavaScript Object Notation থেকে Tom's Obvious Minimal Language-এ ডেটা স্থানান্তরের প্রক্রিয়া। JSON কার্লি ব্রেস, স্কোয়ার ব্র্যাকেট এবং কোটেড কী ব্যবহার করে কাঠামোবদ্ধ ডেটা উপস্থাপন করে। TOML সেকশন হেডার (যাকে টেবিল বলা হয়) সহ একটি ফ্ল্যাট কী-ভ্যালু সিনট্যাক্স ব্যবহার করে যা INI ফাইলের মতো পড়া যায় কিন্তু কঠোর টাইপিং সহ। TOML বিশেষভাবে কনফিগারেশন ফাইলের জন্য ডিজাইন করা হয়েছিল যেখানে মেশিন আদান-প্রদানের চেয়ে মানুষের পাঠযোগ্যতা বেশি গুরুত্বপূর্ণ।

TOML Rust (Cargo.toml), Python প্যাকেজিং (pyproject.toml), Hugo স্ট্যাটিক সাইট, Netlify ডিপ্লয়মেন্ট সেটিংস এবং অনেক CLI টুলের ডিফল্ট কনফিগারেশন ফরম্যাট হয়ে উঠেছে। যখন আপনার উৎস ডেটা JSON হিসেবে থাকে — কোনো API প্রতিক্রিয়া, এক্সপোর্টেড কনফিগ, বা জেনারেটেড ফাইল থেকে — এবং আপনার লক্ষ্য সিস্টেম TOML আশা করে, তখন আপনার এমন একটি কনভার্টার দরকার যা JSON অবজেক্টকে TOML টেবিলে, JSON অ্যারেকে TOML অ্যারেতে ম্যাপ করে এবং প্রতিটি ডেটা টাইপ সঠিকভাবে সংরক্ষণ করে।

অনলাইনে JSON থেকে TOML রূপান্তর হলো বিদ্যমান JSON ডেটা থেকে বৈধ TOML তৈরির দ্রুততম উপায়। রূপান্তরটি স্বয়ংক্রিয়ভাবে টাইপ ম্যাপিং পরিচালনা করে: JSON স্ট্রিং TOML স্ট্রিং হয়, JSON সংখ্যা TOML ইন্টিজার বা ফ্লোট হয়, JSON বুলিয়ান সরাসরি ম্যাপ হয় এবং JSON অবজেক্ট TOML টেবিল হয়। একমাত্র ব্যতিক্রম হলো null — TOML-এ কোনো null টাইপ নেই, তাই null মানগুলো হয় বাদ দেওয়া হয় অথবা কনভার্টার অনুযায়ী খালি স্ট্রিংয়ে রূপান্তরিত হয়।

এই JSON থেকে TOML কনভার্টার কেন ব্যবহার করবেন?

TOML হলো যা কনফিগ ফাইলগুলো আশা করে; JSON হলো যা API ও টুলগুলো তৈরি করে। এই কনভার্টার দুটি ফরম্যাটের মধ্যে সেতু তৈরি করে যাতে আপনি ম্যানুয়ালি পুনরায় লেখা ছাড়াই ডেটা স্থানান্তর করতে পারেন।

তাৎক্ষণিক রূপান্তর
JSON পেস্ট করুন এবং সাথে সাথে TOML আউটপুট পান। আপনি টাইপ করার সাথে সাথে রূপান্তর চলে — কোনো সার্ভার রাউন্ড-ট্রিপ বা ফাইল আপলোড নেই।
🔒
প্রাইভেসি-ফার্স্ট প্রসেসিং
সমস্ত রূপান্তর আপনার ব্রাউজারে স্থানীয়ভাবে হয়। আপনার JSON-এ থাকা কনফিগারেশন সিক্রেট, API কী এবং ডেটাবেস ক্রেডেনশিয়াল কখনো আপনার ডিভাইস ছাড়ে না।
🔀
সম্পূর্ণ কাঠামো সমর্থন
নেস্টেড অবজেক্ট TOML টেবিল হয়, অবজেক্টের অ্যারে অ্যারে-অফ-টেবিল হয় ([[table]]), এবং মিশ্র-টাইপের অ্যারে সঠিকভাবে পরিচালিত হয়।
📋
কোনো অ্যাকাউন্ট প্রয়োজন নেই
পেজ খুলুন এবং রূপান্তর করুন। কোনো সাইন-আপ নেই, কোনো এক্সটেনশন ইনস্টল করতে হবে না, কোনো CLI নির্ভরতা নেই। যেকোনো আধুনিক ব্রাউজারে কাজ করে।

JSON থেকে TOML ব্যবহারের ক্ষেত্র

Rust প্রজেক্ট কনফিগারেশন
Cargo.toml Rust প্রজেক্টের নির্ভরতা, ফিচার এবং বিল্ড সেটিংস নির্ধারণ করে। JSON নির্ভরতার তালিকা বা জেনারেটেড কনফিগ সরাসরি Cargo.toml ফরম্যাটে রূপান্তর করুন।
Python প্যাকেজিং (pyproject.toml)
PEP 518 এবং PEP 621 pyproject.toml কে Python প্রজেক্ট মেটাডেটা ফাইল হিসেবে মানসম্মত করেছে। বিদ্যমান JSON প্যাকেজ মেটাডেটা প্রয়োজনীয় TOML কাঠামোয় রূপান্তর করুন।
স্ট্যাটিক সাইট কনফিগারেশন
Hugo, Netlify এবং অন্যান্য স্ট্যাটিক সাইট জেনারেটর TOML কনফিগ ফাইল ব্যবহার করে। JSON-ভিত্তিক সেটআপ থেকে মাইগ্রেট করার সময় বা প্রোগ্রামগতভাবে কনফিগ তৈরি করার সময়, আউটপুট TOML-এ রূপান্তর করুন।
DevOps ও ইনফ্রাস্ট্রাকচার
Terraform (কিছু প্রোভাইডারের জন্য), Consul এবং বিভিন্ন কন্টেইনার রানটাইমের মতো টুলগুলো TOML কনফিগারেশন গ্রহণ করে। মান পুনরায় না টাইপ করেই JSON-এক্সপোর্টেড সেটিংস TOML-এ রূপান্তর করুন।
API Response থেকে কনফিগ ফাইল
REST API JSON রিটার্ন করে। যখন আপনাকে সেই ডেটা TOML কনফিগারেশন হিসেবে ব্যবহার করতে হয় — যেমন ফিচার ফ্ল্যাগ বা পরিবেশ সেটিংস — response পেস্ট করুন এবং বৈধ TOML পান।
TOML সিনট্যাক্স শেখা
TOML-এ নতুন শিক্ষার্থী এবং ডেভেলপাররা পরিচিত JSON কাঠামো পেস্ট করে সমতুল্য TOML আউটপুট দেখতে পারেন।

JSON বনাম TOML তুলনা

JSON এবং TOML সামর্থ্যে ওভারল্যাপ করে কিন্তু সিনট্যাক্স, টাইপ সমর্থন এবং উদ্দিষ্ট ব্যবহারে ভিন্ন। এই টেবিলটি রূপান্তরকে প্রভাবিত করে এমন পার্থক্যগুলো দেখায়।

বৈশিষ্ট্যJSONTOML
SyntaxBraces, brackets, colons, commasKey = value, [table], [[array]]
CommentsNot allowed (RFC 8259)Supported with #
Data typesstring, number, boolean, null, object, arraystring, integer, float, boolean, datetime, array, table
null supportNative (null)No null type — omit the key or use empty string
Nested objectsUnlimited nesting depthDotted keys or [table.subtable] headers
Arrays of objectsArray of objects with [][[array-of-tables]] syntax
ReadabilityModerate — bracket-heavy at depthHigh — flat key-value pairs
SpecRFC 8259 / ECMA-404TOML v1.0.0 (toml.io)

TOML রূপান্তরের সাধারণ সমস্যা

TOML-এর এমন নিয়ম রয়েছে যা JSON থেকে ভিন্ন এবং রূপান্তর আউটপুটকে প্রভাবিত করে। এই চারটি সমস্যা সবচেয়ে বেশি বিভ্রান্তির কারণ হয়।

TOML-এ null টাইপ নেই
JSON null কে প্রথম-শ্রেণীর মান হিসেবে সমর্থন করে। TOML-এ কোনো null টাইপ নেই। রূপান্তরের সময়, null মানগুলো পরিচালনা করতে হয় — হয় কী সম্পূর্ণ বাদ দিয়ে, খালি স্ট্রিং ব্যবহার করে, বা একটি সেন্টিনেল মান বেছে নিয়ে। এর মানে JSON থেকে TOML এবং ফিরে একটি রাউন্ড-ট্রিপ মূল null মানগুলো পুনরুৎপাদন নাও করতে পারে।
ভিন্নধর্মী অ্যারে সীমাবদ্ধ
JSON অ্যারে স্বাধীনভাবে টাইপ মেশাতে পারে: [1, "two", true]। TOML v1.0.0 একটি অ্যারের সব উপাদান একই টাইপ হওয়া প্রয়োজন। আপনার JSON-এ মিশ্র-টাইপের অ্যারে থাকলে, কনভার্টারকে হয় সব উপাদান স্ট্রিং করতে হবে অথবা ত্রুটি দিতে হবে। উৎস অ্যারেতে মিশ্র টাইপ থাকলে আউটপুট যাচাই করুন।
গভীরভাবে নেস্টেড অবজেক্ট দীর্ঘ হয়ে যায়
JSON নেস্টেড ব্রেস দিয়ে গভীর নেস্টিং স্বাভাবিকভাবে পরিচালনা করে। TOML ডটেড কী বা চেইনড [table.subtable.key] হেডার ব্যবহার করে, যা গভীরভাবে নেস্টেড কাঠামোর জন্য দীর্ঘ হতে পারে। আউটপুট বৈধ কিন্তু মূল JSON-এর চেয়ে কম সংক্ষিপ্ত।
কী নামকরণের বিধিনিষেধ
TOML বেয়ার কী শুধুমাত্র ASCII অক্ষর, সংখ্যা, ড্যাশ এবং আন্ডারস্কোর ধারণ করতে পারে। JSON কী যেকোনো স্ট্রিং হতে পারে। আপনার JSON-এ স্পেস, ডট, বা বিশেষ অক্ষর সহ কী থাকলে, সেই কীগুলো TOML আউটপুটে কোটেড হতে হবে। বেশিরভাগ কনভার্টার এটি স্বয়ংক্রিয়ভাবে পরিচালনা করে, তবে আপনার কী-তে অস্বাভাবিক অক্ষর থাকলে আউটপুট যাচাই করুন।

কোড উদাহরণ

প্রোগ্রামগতভাবে JSON থেকে TOML রূপান্তর করতে বেশিরভাগ ভাষায় একটি TOML সিরিয়ালাইজেশন লাইব্রেরি প্রয়োজন। স্ট্যান্ডার্ড লাইব্রেরি JSON পার্স করে; TOML আউটপুটের জন্য একটি নির্দিষ্ট প্যাকেজ দরকার।

JavaScript (Node.js)
import { stringify } from '@iarna/toml'

const json = '{"title":"My App","database":{"host":"localhost","port":5432}}'
const obj = JSON.parse(json)
const toml = stringify(obj)
console.log(toml)
// → title = "My App"
// →
// → [database]
// → host = "localhost"
// → port = 5432
Python
import json
import tomli_w  # pip install tomli_w

json_str = '{"title": "My App", "database": {"host": "localhost", "port": 5432}}'
data = json.loads(json_str)
toml_str = tomli_w.dumps(data)
print(toml_str)
# → title = "My App"
# →
# → [database]
# → host = "localhost"
# → port = 5432
Go
package main

import (
    "encoding/json"
    "fmt"
    "github.com/pelletier/go-toml/v2"
)

func main() {
    jsonStr := `{"title":"My App","database":{"host":"localhost","port":5432}}`
    var data map[string]interface{}
    json.Unmarshal([]byte(jsonStr), &data)

    tomlBytes, _ := toml.Marshal(data)
    fmt.Println(string(tomlBytes))
    // → title = 'My App'
    // →
    // → [database]
    // → host = 'localhost'
    // → port = 5432
}
CLI (yj / remarshal)
# Using yj (https://github.com/sclevine/yj)
echo '{"title":"My App","port":3000}' | yj -jt
# → title = "My App"
# → port = 3000

# Using remarshal (pip install remarshal)
echo '{"title":"My App","port":3000}' | remarshal -if json -of toml
# → title = "My App"
# → port = 3000

সচরাচর জিজ্ঞাসা

JSON থেকে TOML রূপান্তর কি ক্ষতিহীন?
বেশিরভাগ ডেটার জন্য, হ্যাঁ। স্ট্রিং, ইন্টিজার, ফ্লোট, বুলিয়ান, অবজেক্ট এবং অ্যারে সবার সরাসরি TOML সমতুল্য রয়েছে। দুটি ব্যতিক্রম হলো null (TOML-এ কোনো null টাইপ নেই, তাই null মানগুলো বাদ দেওয়া বা প্রতিস্থাপিত হয়) এবং মিশ্র-টাইপের অ্যারে (TOML অভিন্ন অ্যারে উপাদান টাইপ প্রয়োজন)। আপনার JSON যদি এই দুটি প্যাটার্ন এড়িয়ে চলে, তাহলে রূপান্তর সম্পূর্ণ ক্ষতিহীন।
TOML-এ JSON null মানগুলোর কী হয়?
TOML-এ কোনো null টাইপ নেই। কনভার্টাররা সাধারণত null মান সহ কীগুলো আউটপুট থেকে বাদ দেয়, কারণ TOML-এ "কী আছে কিন্তু কোনো মান নেই" উপস্থাপনের কোনো উপায় নেই। কিছু কনভার্টার খালি স্ট্রিং ব্যবহার করার বিকল্প দেয়। আপনার ডেটায় null মানগুলো অর্থবহ হলে আউটপুট যাচাই করুন।
TOML কি নেস্টেড JSON অবজেক্ট উপস্থাপন করতে পারে?
হ্যাঁ। JSON অবজেক্ট TOML টেবিল হয়। {"database": {"host": "localhost"}} এর মতো নেস্টেড অবজেক্ট [database] টেবিল হেডারে রূপান্তরিত হয় যার নিচে host = "localhost" থাকে। ডটেড কী বা নেস্টেড টেবিল হেডারের মাধ্যমে যেকোনো গভীরতার নেস্টিং সমর্থিত।
কেন Rust এবং Python JSON-এর পরিবর্তে TOML ব্যবহার করে?
TOML মন্তব্য সমর্থন করে, যা কনফিগারেশন পছন্দ ডকুমেন্ট করার জন্য অপরিহার্য। এটি ফ্ল্যাট কী-ভ্যালু সেটিংসের জন্য পরিষ্কার আউটপুটও তৈরি করে, যা প্যাকেজ মেটাডেটার বেশিরভাগ অংশ। JSON মন্তব্য নিষিদ্ধ করে (RFC 8259), যা মানুষ-সম্পাদিত কনফিগ ফরম্যাট হিসেবে রক্ষণাবেক্ষণ কঠিন করে।
TOML তারিখ ও সময় কীভাবে পরিচালনা করে?
TOML-এ নেটিভ ডেটটাইম টাইপ রয়েছে: অফসেট ডেটটাইম (2024-01-15T10:30:00Z), লোকাল ডেটটাইম, লোকাল ডেট এবং লোকাল টাইম। JSON-এ কোনো ডেট টাইপ নেই — তারিখ স্ট্রিং হিসেবে সংরক্ষিত হয়। JSON থেকে TOML রূপান্তরের সময়, তারিখের মতো স্ট্রিং স্ট্রিং থেকে যায় যদি না কনভার্টার স্পষ্টভাবে ISO 8601 প্যাটার্ন সনাক্ত করে রূপান্তর করে।
এই টুলে সিক্রেট ও ক্রেডেনশিয়াল পেস্ট করা কি নিরাপদ?
হ্যাঁ। রূপান্তর সম্পূর্ণভাবে আপনার ব্রাউজারে JavaScript ব্যবহার করে চলে। কোনো ডেটা কোনো সার্ভারে পাঠানো হয় না। আপনি এটি যাচাই করতে পারেন আপনার ব্রাউজারের ডেভেলপার টুলস খুলে, নেটওয়ার্ক ট্যাবে গিয়ে এবং রূপান্তরের সময় কোনো অনুরোধ না হওয়া নিশ্চিত করে।
আউটপুট কোন TOML ভার্সন অনুসরণ করে?
আউটপুট TOML v1.0.0 অনুসরণ করে, যা জানুয়ারি ২০২১ সালে প্রকাশিত হয়েছিল এবং বর্তমান স্থিতিশীল স্পেসিফিকেশন। এই ভার্সনে অভিন্ন অ্যারে টাইপ প্রয়োজন, ডটেড কী সমর্থন করে এবং ডেটটাইম ফরম্যাট নির্ধারণ করে। স্পেকটি toml.io-তে রক্ষণাবেক্ষণ করা হয়।