@SerializedName
জিসন ব্যবহার করে অ্যান্ড্রয়েডে টীকা দেওয়ার মূল উদ্দেশ্য কী ?
আমাকে কিছু ভিন্ন উদাহরণ দিন। আমি এটি ব্যবহারের মূল উদ্দেশ্য বুঝতে পারি না।
@SerializedName
জিসন ব্যবহার করে অ্যান্ড্রয়েডে টীকা দেওয়ার মূল উদ্দেশ্য কী ?
আমাকে কিছু ভিন্ন উদাহরণ দিন। আমি এটি ব্যবহারের মূল উদ্দেশ্য বুঝতে পারি না।
উত্তর:
জাভা শ্রেণীর উদাহরণ,
public class Person {
@SerializedName("name")
private String personName;
@SerializedName("bd")
private String birthDate;
}
এই শ্রেণীর দুটি ক্ষেত্র রয়েছে যা কোনও ব্যক্তির নাম এবং জন্মের তারিখ উপস্থাপন করে। এই ক্ষেত্রগুলি @ সিরিয়ালাইজড এনমেটেশন দিয়ে টিকা দেওয়া হয়। এই টীকাটির প্যারামিটার (মান) কখন serialising
এবং deserialising
অবজেক্ট হিসাবে ব্যবহৃত হবে । উদাহরণস্বরূপ, জাভা ক্ষেত্রের ব্যক্তি নামটি নাম হিসাবে প্রতিনিধিত্ব করা হয় হয়।
JSON উদাহরণ,
{
"name":"chintan",
"bd":"01-01-1990"
}
Json
এখানে ইতিমধ্যে কয়েকটি উত্তর রয়েছে তবে আমি যুক্ত করতে চাই যে আপনি যদি ProGuard
নিজের কোডটি @SerializedName("name")
অবলম্বন করতে ব্যবহার করেন এবং আপনার মডেল শ্রেণিতে ব্যবহার না করেন তবে আপনার জিএসএন কাজ করবে না। কিংকর্তব্যবিমূঢ়তা কারণে, আপনার পরিবর্তনশীল নামের থেকে পরিবর্তিত হতে পারে কারণ String name
থেকে String a
ভাঙ্গা GSON GSON কী-এর জন্য দেখবে যেমন পার্স মধ্যে ফলেa
JSON মধ্যে & এটি ব্যর্থ হবে।
নির্দিষ্ট করে @SerializedName
, GSON ভেরিয়েবল নামের উপর ভিত্তি করে জসনকে দেখতে পাবে না এবং কেবল নির্দিষ্ট ব্যবহার করবে @SerializedName
।
কোর্সের ক্ষেত্রে আপনি প্রগর্ডকে বলতে পারেন যে আপনার মডেলটি অবরুদ্ধ করবেন না, তবে আপনি যদি মডেলটি অবরুদ্ধ করতে চান তবে আপনাকে অবশ্যই উল্লেখ করতে হবে @SerializedName
ক্লাসের শীর্ষে @ কিপ নির্দিষ্ট করে আপনার ডেটা ক্লাসগুলিকে অবহেলা না করার জন্য আপনি প্রগার্ডকে নির্দেশ দিতে পারেন। এটি আপনার ক্লাসকে অপসারণ বা অচল করে দেবে না। যদি ক্ষেত্রের নামটি জেসন কী এর জন্য ব্যবহৃত হয় তবে স্পষ্টভাবে প্রতিটি ক্ষেত্রে প্রতিটি ক্ষেত্রের সাথে @SrizedizedName যুক্ত করার দরকার নেই।