একটি JSON নমুনাকে System.Text.Json বা Newtonsoft.Json-এর জন্য C# ক্লাস বা রেকর্ডে রূপান্তর করুন
আপনার ব্রাউজারে চলে। আপনি যা লেখেন তা কোথাও পাঠানো হয় না। যাচাই করা হয়েছে 16 অক্টোবর, 2026।একটি JSON নমুনা পেস্ট করুন আর PascalCase প্রপার্টি এবং JsonPropertyName বা JsonProperty অ্যাট্রিবিউটে JSON কী সহ C# ক্লাস বা রেকর্ড পান। পূর্ণসংখ্যা হয় int, 2,147,483,647-এর বেশি হলে long, যেকোনো দশমিক একটি ফিল্ডকে double করে, আর null বা অনুপস্থিত মান হয় nullable, যেমন int?।
এই পৃষ্ঠাটি ইংরেজি মূল লেখা থেকে যন্ত্রের সাহায্যে অনুবাদ করা হয়েছে। এই অনুবাদটি এখনও কোনো মানুষ পর্যালোচনা করেননি, তাই ইংরেজি সংস্করণটিকেই নির্ভরযোগ্য ধরুন। ইংরেজি মূল লেখাটি পড়ুন
বাঁ দিকের বাক্সে একটি JSON নমুনা পেস্ট করুন, যেমন একটি API রেসপন্স।
লেখার সাথে সাথে C# ক্লাস দেখা যায়, প্রতিটি অবজেক্টের জন্য একটি, PascalCase প্রপার্টি এবং প্রতিটিতে একটি অ্যাট্রিবিউটে JSON কী সহ।
System.Text.Json বা Newtonsoft.Json বেছে নিন, আর অপরিবর্তনীয় মডেল পছন্দ হলে init সহ রেকর্ড।
কপি করুন চাপুন, অথবা Models.cs সংরক্ষণ করতে ডাউনলোড চাপুন, এবং রুট ক্লাসে ডিসিরিয়ালাইজ করুন।
C# JSON-কে টাইপ করা ক্লাসে পড়ে, আর প্রতিটি প্রপার্টির সঠিক টাইপ এবং নিজের কী খুঁজে পাওয়ার একটি উপায় দরকার। এই কনভার্টার একটি নমুনা থেকে সেই ক্লাসগুলো লেখে, তাই একটি লম্বা API রেসপন্স এক পেস্টেই কম্পাইল হওয়া একটি মডেল হয়ে যায়।
টাইপ কীভাবে বেছে নেওয়া হয়।
| JSON মান | C# টাইপ |
|---|---|
| "text" | string |
| true / false | bool |
| 42 (শুধু পূর্ণসংখ্যা) | int, অথবা 32 বিটের বেশি হলে long |
| 4.5 (কোনো দশমিক দেখা গেলে) | double |
| null, সাথে আরেকটি টাইপ | int?, string? |
| শুধু null, বা মিশ্র ধরন | object? |
| [ ... ] | List<...> |
| { } ফাঁকা | Dictionary<string, object> |
| { ... } | নিজস্ব একটি ক্লাস |
কী ও নাম। প্রপার্টি PascalCase-এ লেখা হয়, তাই user_name হয় UserName আর avatar_url হয় AvatarUrl। প্রতিটি প্রপার্টি তার মূল কী একটি অ্যাট্রিবিউটে বহন করে, কারণ অন্যভাবে বলা না হলে System.Text.Json বড়-ছোট হাতের অক্ষর আলাদা ধরে নাম মেলায়; Newtonsoft এর বদলে [JsonProperty] পায়। যে প্রপার্টির নাম তার ক্লাসের নামের সাথে মিলে যেত, যা কম্পাইলার CS0542 হিসেবে প্রত্যাখ্যান করে, তাতে Value যোগ করা হয়।
অবজেক্টের অ্যারে। একটি অ্যারের সব অবজেক্ট মিলে একটি ক্লাস হয়, তাই যে কী শুধু কয়েকটিতে আছে সেটিও থাকে, nullable করে, যাতে তার অনুপস্থিতি 0 বা false নয়, null হিসেবে পড়া হয়। হুবহু একই কী ও টাইপের দুটি অবজেক্ট একটি ক্লাস ভাগ করে নেয়।
অপশন। init সহ রেকর্ড অপরিবর্তনীয় মডেল দেয়, যা মান দিয়ে তুলনা হয়। আপনি নাম না দিলে রুট ক্লাসের নাম Root। JSON নিজেই একটি অ্যারে বা একক মান হলে, একটি মন্তব্য জানায় কোন টাইপে ডিসিরিয়ালাইজ করতে হবে, যেমন List।
প্রতিটি আউটপুট যাচাই করা হয়েছে C# আবার পড়ে এবং সিরিয়ালাইজারের নিয়মে 9টি নমুনা তার সাথে মিলিয়ে। আপনি যা পেস্ট করেন তার কিছুই ব্রাউজারের বাইরে যায় না।
কনভার্টারে একটি JSON নমুনা পেস্ট করুন, পাশেই C# ক্লাস দেখা যাবে, প্রতিটি অবজেক্টের জন্য একটি, প্রতিটি প্রপার্টিতে JsonPropertyName অ্যাট্রিবিউটসহ। সেগুলো আপনার প্রজেক্টে কপি করুন এবং JsonSerializer.Deserialize<Root>(json) দিয়ে, বা Newtonsoft বেছে নিলে JsonConvert.DeserializeObject<Root>(json) দিয়ে JSON পড়ুন।
ডিফল্টভাবে System.Text.Json বড়-ছোট হাতের অক্ষর আলাদা ধরে প্রপার্টির নাম মেলায়, তাই UserName নামের একটি প্রপার্টি কখনও user_name কী পেত না। অ্যাট্রিবিউটটি সঠিক কী-টির নাম বলে দেয়, ফলে C#-এর নাম PascalCase-এ থাকে এবং কোনো সিরিয়ালাইজার অপশন বা নামকরণ নীতি ছাড়াই JSON পড়া যায়।
একটি প্রপার্টি nullable হয় যখন নমুনায় তার জন্য null দেখা যায়, অথবা অ্যারের কিছু অবজেক্টে তার কী বাদ থাকে। প্রশ্নবোধক চিহ্ন ছাড়া একটি অনুপস্থিত সংখ্যা নিঃশব্দে 0 আর একটি অনুপস্থিত ফ্ল্যাগ false হিসেবে পড়া হতো, তাই nullable টাইপ অনুপস্থিত আর শূন্যকে আলাদা রাখে।
যে মডেল আপনি শুধু পড়েন তার জন্য init অ্যাক্সেসরসহ রেকর্ড উপযুক্ত, কারণ ডিসিরিয়ালাইজেশনের পরে এর প্রপার্টি বদলাতে পারে না এবং একই মানের দুটি রেকর্ড সমান ধরা হয়। যে মডেল আপনি পূরণ বা সম্পাদনা করেন তার জন্য set সহ ক্লাস উপযুক্ত। দুটোই .NET 5 থেকে System.Text.Json এবং Newtonsoft.Json-এর সাথে কাজ করে।
পূর্ণসংখ্যা হয় int, অথবা কোনো মান 2,147,483,647 ছাড়ালে long, আর নমুনার কোনো মানে দশমিক অংশ থাকলেই ফিল্ডটি double হয়। ভিন্ন ধরনের মান, যেমন এক আইটেমে সংখ্যা আর অন্যটিতে টেক্সট, হয় object?, যা কাঁচা JSON মানটি রেখে দেয়।
না। রূপান্তর আপনার ব্রাউজারেই চলে, কোনো সার্ভারে অনুরোধ যায় না, আর JSON সংরক্ষিত হয় না, তাই টোকেন বা ব্যক্তিগত তথ্যসহ API রেসপন্স আপনার ডিভাইসেই থাকে। ট্যাবটি বন্ধ করলে কিছুই থাকে না।
হার ও নিয়ম বদলায়; কোনো অঙ্কের ওপর নির্ভর করার আগে সূত্রটি দেখে নিন।
এখনও আটকে আছেন? JSON থেকে C# ক্লাস কনভার্টার সম্পর্কে প্রশ্ন করুন আর যিনি জানেন তিনিই উত্তর দিতে পারেন। কোনো অ্যাকাউন্ট লাগবে না।