Omnikit
ডেভফাইলঅর্থসব টুল
Ctrl K
ডেভেলপার টুলফাইল টুলঅর্থ ক্যালকুলেটরসব টুল
হোমডেভেলপার টুলJSON থেকে Rust স্ট্রাক্ট কনভার্টার
EnglishالعربيةবাংলাDeutschEspañolFrançaisPolskiPortuguêsРусский

JSON থেকে Rust স্ট্রাক্ট কনভার্টার

ডেভ

একটি JSON নমুনাকে serde derive, রিনেম, Option ও Vec সহ Rust স্ট্রাক্টে রূপান্তর করুন

আপনার ব্রাউজারে চলে। আপনি যা লেখেন তা কোথাও পাঠানো হয় না। যাচাই করা হয়েছে 16 অক্টোবর, 2026।

একটি JSON নমুনা পেস্ট করুন আর serde-এর Serialize ও Deserialize derive সহ Rust স্ট্রাক্ট পান। পূর্ণসংখ্যা হয় i64 আর যেকোনো দশমিক একটি ফিল্ডকে f64 করে; null বা কিছু অবজেক্টে অনুপস্থিত মান হয় Option<T>, আর snake_case ফিল্ড থেকে ভিন্ন বানানের কী একটি serde rename পায়, সবগুলো camelCase হলে 1টি rename_all।

এই পৃষ্ঠাটি ইংরেজি মূল লেখা থেকে যন্ত্রের সাহায্যে অনুবাদ করা হয়েছে। এই অনুবাদটি এখনও কোনো মানুষ পর্যালোচনা করেননি, তাই ইংরেজি সংস্করণটিকেই নির্ভরযোগ্য ধরুন। ইংরেজি মূল লেখাটি পড়ুন

এরপর:
  • JSON থেকে TypeScript একটি JSON নমুনা থেকে TypeScript ইন্টারফেস বা টাইপ তৈরি করুন
  • JSON ফরম্যাটার ও ভ্যালিডেটর JSON ফরম্যাট, যাচাই, মিনিফাই ও সাজান, প্রতিটি ত্রুটির সঠিক অবস্থান সহ

কীভাবে JSON-কে Rust স্ট্রাক্টে রূপান্তর করবেন

1

বাঁ দিকের বাক্সে একটি JSON নমুনা পেস্ট করুন, যেমন একটি API রেসপন্স।

2

লেখার সাথে সাথে Rust স্ট্রাক্ট দেখা যায়, প্রতিটিতে #[derive(Serialize, Deserialize)], snake_case ফিল্ড এবং দরকারি serde রিনেমসহ।

3

চাইলে প্রতিটি ফিল্ডে Option বা PartialEq চালু করুন, এবং রুট স্ট্রাক্টের নাম ঠিক করুন।

4

কপি করুন চাপুন, অথবা models.rs সংরক্ষণ করতে ডাউনলোড চাপুন, এবং Cargo.toml-এ serde (derive ফিচারসহ) ও serde_json যোগ করুন।

JSON থেকে Rust স্ট্রাক্ট কনভার্টার সম্পর্কে

Rust serde দিয়ে JSON ডিকোড করে, আর প্রতিটি অবজেক্টের জন্য এমন একটি স্ট্রাক্ট দরকার যার ফিল্ডগুলোর টাইপ সঠিক এবং নামগুলো JSON কী-এর সাথে মেলে। এই কনভার্টার একটি নমুনা থেকে সেই স্ট্রাক্টগুলো লেখে, তাই একটি লম্বা API রেসপন্স এক পেস্টেই কম্পাইল হওয়া Rust হয়ে যায়।

টাইপ কীভাবে বেছে নেওয়া হয়।

JSON মান Rust টাইপ
"text" String
true / false bool
42 (শুধু পূর্ণসংখ্যা) i64
4.5 (কোনো দশমিক দেখা গেলে) f64
null, সাথে আরেকটি টাইপ Option
শুধু null, বা মিশ্র ধরন serde_json::Value
[ ... ] Vec<...>
{ } ফাঁকা Map<String, Value>
{ ... } নিজস্ব একটি স্ট্রাক্ট

অনুপস্থিত কী। একটি অ্যারের সব অবজেক্ট মিলে একটি স্ট্রাক্ট হয়। যে কী কিছু অবজেক্টে বাদ থাকে সেটি Option হয়, কারণ serde একটি অনুপস্থিত Option-কে None ধরে আর অন্য যেকোনো অনুপস্থিত ফিল্ডকে ত্রুটি। সেই ফিল্ডগুলো skip_serializing_if-ও পায়, তাই স্ট্রাক্টটি আবার লিখলে সেগুলো আবার বাদ পড়ে।

নাম। ফিল্ডগুলো snake_case-এ থাকে। প্রতিটি কী যখন শুধু তার ফিল্ডের camelCase রূপ, তখন স্ট্রাক্টে একটিমাত্র rename_all থাকে; নইলে প্রতিটি ভিন্ন ফিল্ড নিজের rename পায়। কীওয়ার্ড হয় raw আইডেন্টিফায়ার, যেমন r#type; self, super ও crate raw হতে পারে না, তাই সেগুলো rename সহ self_ হয়।

অপশন। যে API যেকোনো কী বাদ দিতে পারে, তার জন্য প্রতিটি ফিল্ডে Option উপযুক্ত। PartialEq derive করলে টেস্টে মান তুলনা করা যায়। আপনি নাম না দিলে রুট স্ট্রাক্টের নাম Root।

প্রতিটি আউটপুট যাচাই করা হয়েছে serde-এর নিয়মে Rust আবার পড়ে এবং তা দিয়ে 9টি নমুনা ডিকোড করে। আপনি যা পেস্ট করেন তার কিছুই ব্রাউজারের বাইরে যায় না।

সাধারণ জিজ্ঞাসা

কীভাবে JSON-কে Rust স্ট্রাক্টে রূপান্তর করব?

কনভার্টারে একটি JSON নমুনা পেস্ট করুন, পাশেই Rust স্ট্রাক্ট দেখা যাবে, প্রতিটি Serialize ও Deserialize derive করে। Cargo.toml-এ derive ফিচারসহ serde এবং serde_json যোগ করুন, স্ট্রাক্টগুলো একটি মডিউলে পেস্ট করুন, এবং serde_json::from_str::<Root>(&text) দিয়ে ডিকোড করুন।

একটি ফিল্ড কখন Option<T> হয়?

নমুনায় কোনো ফিল্ড null দেখালে, বা অ্যারের কিছু অবজেক্টে কী বাদ থাকলে, ফিল্ডটি Option হয়। serde একটি Option-এ অনুপস্থিত কী-কে None হিসেবে ডিকোড করে, আর অন্য যেকোনো অনুপস্থিত ফিল্ড ত্রুটি, তাই Option-ই স্ট্রাক্টকে নমুনার প্রতিটি অবজেক্ট গ্রহণ করতে দেয়।

camelCase JSON কী কীভাবে snake_case ফিল্ডে মেলানো হয়?

Rust-এর স্টাইল অনুযায়ী ফিল্ডগুলো snake_case-এ লেখা হয়। প্রতিটি কী তার ফিল্ডের camelCase রূপ হলে স্ট্রাক্টটি একটিমাত্র #[serde(rename_all = "camelCase")] পায়; নইলে ভিন্নভাবে লেখা প্রতিটি ফিল্ড নিজের #[serde(rename = "key")] পায়, তাই first-name বা 2fa-এর মতো কী-ও ডিকোড হয়।

i32 বা f32-এর বদলে কেন i64 ও f64?

একটি সংখ্যা কত বড় হতে পারে JSON তা বলে না, তাই i64 নিরাপদ পূর্ণসংখ্যা টাইপ, আর f64 সেই ডাবল প্রিসিশনের সাথে মেলে যাতে JSON সংখ্যা পড়া হয়। নমুনার কোনো মানে দশমিক অংশ থাকলেই ফিল্ডটি f64 হয়, কারণ serde 4.5-কে একটি পূর্ণসংখ্যায় পড়তে অস্বীকার করে।

type বা match নামের কী-এর কী হয়?

কীওয়ার্ডগুলো raw আইডেন্টিফায়ার হিসেবে লেখা হয়, যেমন r#type, আর কী-এর সাথে মেলানোর সময় serde r# সরিয়ে দেয়, তাই কোনো rename লাগে না। যে চারটি কীওয়ার্ড raw হতে পারে না, self, Self, super ও crate, সেগুলো self_ ও অনুরূপ হয়, মূল কী-তে ফেরার একটি rename সহ।

আমার JSON কি আপলোড হয়?

না। রূপান্তর আপনার ব্রাউজারেই চলে, কোনো সার্ভারে অনুরোধ যায় না, আর JSON সংরক্ষিত হয় না, তাই টোকেন বা ব্যক্তিগত তথ্যসহ API রেসপন্স আপনার ডিভাইসেই থাকে। ট্যাবটি বন্ধ করলে কিছুই থাকে না।

সূত্র

  • serde, field attributesrename and skip_serializing_if on a field
  • serde, container attributesrename_all = "camelCase" on a struct
  • The Rust Reference, keywords and raw identifiersWhich names need r#, and the four that cannot be raw
  • Rust API Guidelines, namingUpperCamelCase types, snake_case fields

শেষ যাচাই 16 অক্টোবর, 2026।

হার ও নিয়ম বদলায়; কোনো অঙ্কের ওপর নির্ভর করার আগে সূত্রটি দেখে নিন।

এখনও আটকে আছেন? JSON থেকে Rust স্ট্রাক্ট কনভার্টার সম্পর্কে প্রশ্ন করুন আর যিনি জানেন তিনিই উত্তর দিতে পারেন। কোনো অ্যাকাউন্ট লাগবে না।

সম্পর্কিত টুল

সব ডেভেলপার টুল
Base64 এনকোড ও ডিকোডটেক্সট ও ফাইল Base64-এ এবং আবার ফেরত, URL-নিরাপদ মোড ও ছবির প্রিভিউ সহUnix টাইমস্ট্যাম্প কনভার্টারUnix টাইমস্ট্যাম্প থেকে তারিখ আর তারিখ থেকে টাইমস্ট্যাম্প, যেকোনো টাইম জোনেJSON থেকে TypeScriptএকটি JSON নমুনা থেকে TypeScript ইন্টারফেস বা টাইপ তৈরি করুনCSV থেকে JSONটেবিল প্রিভিউসহ CSV থেকে JSON এবং JSON থেকে CSV-তে রূপান্তর করুনYAML থেকে JSONYAML থেকে JSON এবং JSON থেকে YAML-এ রূপান্তর করুন, অ্যাংকর সমাধানসহURL এনকোডার / ডিকোডারটেক্সট ও URL পার্সেন্ট-এনকোড বা ডিকোড করুন, আর লিংকের প্রতিটি অংশ দেখুনসংখ্যা পদ্ধতি রূপান্তরকারীবাইনারি, অক্টাল, ডেসিমাল, হেক্স এবং 36 পর্যন্ত যেকোনো ভিত্তি, যেকোনো আকারে নির্ভুল, টু'জ কমপ্লিমেন্টসহColor ConverterHEX, RGB, HSL, HWB, OKLCH and CMYK in both directions, with a contrast check
এই টুলটি কি কাজে লেগেছে?
Omnikit

ছোট ছোট কাজ, আপনার ব্রাউজারেই। বিনামূল্যে, দ্রুত ও ব্যক্তিগত। ফাইল কখনো আপলোড হয় না।

ফাইল

  • Compress Image
  • Image to PDF
  • Merge PDF
  • Compress PDF
  • PDF to Word
  • Word to PDF

ডেভ

  • JSON Formatter & Validator
  • Base64 Encode & Decode
  • JWT Decoder, Verifier & Encoder
  • Password Generator
  • UUID Generator
  • Unix Timestamp Converter

অর্থ

  • SIP Calculator
  • EMI Calculator
  • GST Calculator
  • FD Calculator
  • PPF Calculator
  • Lumpsum Calculator
EnglishالعربيةবাংলাDeutschEspañolFrançaisPolskiPortuguêsРусский
গাইডপ্রশ্নপরিচিতিআমরা কীভাবে যাচাই করিআইন লাইব্রেরি (বেটা)গোপনীয়তাশর্তাবলিপ্রকাশ্য বিবৃতিযোগাযোগMore: Exam practice (UGC NET Paper 1)আপনার ব্রাউজারে চলে। কিছুই আপলোড হয় না। © 2026 Omnikit (theomnikit.com)