API එකකින් ලැබෙන JSON ප්රතිචාරය C# මොඩලයක් ලෙස භාවිතා කිරීමේදී, ගැඹුරු වස්තු, අරේ, null වටිනාකම් හෝ අසමත් වර්ගීකරණයක් තිබේ නම් කාර්යය සංකීර්ණ වෙයි. මේ නිසා බොහෝ සංවර්ධකයන්ට JSON‑to‑C# පරිවර්තකයක් භාවිතා කිරීම ප්රයෝජනවත් වේ, නමුත් එය පූර්ණ විසඳුමක් නොව, ආරම්භක බිම්පතක් ලෙස සැලකිය යුතුය.
මෙම ලිපිය තුළ JSON එක C# පන්තීන් (class) හෝ රෙකෝඩ් (record) ලෙස පරිවර්තනය කරන පියවර, පරිවර්තනයෙන් පසු පරීක්ෂා කළ යුතු කරුණු, සහ පෞද්ගලික payload එකක් සර්වර් වෙත යැවීමෙන් වැළකී සිටීමේ ක්රමය පිළිබඳව විස්තර කරයි. DevCrate වෙතින් ලබාගත හැකි නොමිලේ JSON‑to‑C# පරිවර්තකය බ්රවුසරයේම ක්රියා කරයි; එමනිසා ඔබේ දත්ත සුරක්ෂිතයි.
උදාහරණයක් ලෙස, පහත JSON එකක් ගැන සලකන්න:
{ "id": 2048, "title": "Mechanical Keyboard", "price": 129.99, "inStock": true, "tags": ["hardware", "keyboards"], "vendor": { "name": "Northwind Devices", "country": "JP" } }Class‑ආකාරයේ මොඩලයක් මෙසේ පෙනේ:
public class Product { public long Id { get; set; } public string Title { get; set; } public double Price { get; set; } public bool InStock { get; set; } public List<string> Tags { get; set; } public Vendor Vendor { get; set; } } public class Vendor { public string Name { get; set; } public string Country { get; set; } }
Record‑ආකාරයේ සංකේතමය ලිඛිතයක් මෙසේ වේ:
public sealed record Product(long Id, string Title, double Price, bool InStock, IReadOnlyList<string> Tags, Vendor Vendor); public sealed record Vendor(string Name, string Country);
ශ්රී ලංකාවට ඇති වැදගත්කම
ශ්රී ලංකාවේ සංවර්ධකයන්ට මෙම පරිවර්තකය භාවිතා කිරීමේ ප්රධාන වාසි කිහිපයක් ඇත:
- වේගවත් ප්රොටොටයිප් නිර්මාණය: API එකකින් ලැබෙන නව JSON එකක් දැක්කාම, මොඩලය එකම මිනිත්තුවකින් සකස් කරගත හැක.
- දෝෂ අඩු කිරීම: මැනුම් වර්ග සහ nullability පරීක්ෂා කිරීමෙන්, රන්ටයිම් දෝෂ අවම වේ.
- ආරක්ෂිත දත්ත සැකසුම: පරිවර්තනය බ්රවුසරයේම සිදු වන නිසා, රහසිගත API key හෝ පෞද්ගලික payload එකක් බාහිර සර්වර් වෙත යන්නේ නැත.
- class vs record තේරීමේ නිදහස: දත්ත‑කේන්ද්රිත DTOs සඳහා record, mutable entity සඳහා class තෝරාගත හැක.
ඉදිරිපත් කරන ලද වර්ග සම්බන්ධීකරණ පටුනක් (type mapping) පහත පරිදි වේ:
- String → string (date, URI, GUID, enum වැනි විකල්ප පරීක්ෂා කරන්න)
- Whole number → int/long (32‑bit සීමා ඉක්මවා ගත හැකිද බලන්න)
- Decimal number → double/decimal (මුදල් ගණනය සඳහා decimal වඩාත් සුදුසු)
- Boolean → bool (null අනුමත කරන්නේද කියා සලකන්න)
- Object → nested class/record (නම සහ නැවත භාවිතය සලකා බලන්න)
- Array → List<T> / T[] / IReadOnlyList<T> (හිස් අරේ වලින් වර්ගය තීරණය කළ නොහැක)
පරිවර්තනයෙන් පසු, නාමකරණ, nullable, සංඛ්යාත්මක නිරවද්යතාව, සහ serialization සැකසුම් පරීක්ෂා කිරීම අත්යවශ්ය වේ. මෙයින් ඔබේ යෙදුම API සමඟ සම්බන්ධතාවය අඩු දෝෂයක් සහිතව ක්රියා කරනවාට සහය වේ.
අවසානයේ, JSON‑to‑C# පරිවර්තකය ඔබේ වැඩ කාලය කඩිනම් කරයි, නමුත් එය නිර්මාණය කළ පසු සවිස්තරාත්මක සමාලෝචනයක් නොකළහොත්, අනාගත දෝෂවලට හේතුවක් විය හැක. එබැවින්, ඔබේ මොඩලය නිවැරදිව සකස් කර, ශ්රී ලංකාවේ තාක්ෂණික පරිසරයට අලුත් ඉඩක් විවෘත කරන්න.