Gson @Expose এনোটেশন ব্যবহার করে একটি ফিল্ডকে এক্সপোজড বা নন-এক্সপোজড (ইনক্লুড বা এক্সক্লুড) চিহ্নিত করা যায় সিরিয়ালাইজেশন বা ডিসিরিয়ালাইজেশনের জন্য। @Expose এনোটেশন দুটি প্যারামিটার নিতে পারে এবং প্রতিটি প্যারামিটার একটি বুলিয়ান যা true বা false মান নিতে পারে। GSON কে @Expose এনোটেশনগুলোতে প্রতিক্রিয়া জানাতে বাধ্য করতে হলে আমাদের GsonBuilder ক্লাস ব্যবহার করে একটি Gson ইনস্ট্যান্স তৈরি করতে হবে এবং excludeFieldsWithoutExposeAnnotation() মেথড কল করতে হবে, যা Gson কে কনফিগার করে যাতে সেই সব ফিল্ডকে সিরিয়ালাইজেশন বা ডিসিরিয়ালাইজেশনের জন্য বিবেচনা থেকে বাদ দেওয়া হয় যাদের @Expose এনোটেশন নেই।
সিনট্যাক্স
public GsonBuilder excludeFieldsWithoutExposeAnnotation()
উদাহরণ
import com.google.gson.*;
import com.google.gson.annotations.*;
public class JsonExcludeAnnotationTest {
public static void main(String args[]) {
Employee emp = new Employee("Raja", 28, 40000.00);
Gson gson = new GsonBuilder().setPrettyPrinting().create();
String jsonStr = gson.toJson(emp);
System.out.println(jsonStr);
gson = new GsonBuilder().setPrettyPrinting().excludeFieldsWithoutExposeAnnotation().create();
jsonStr = gson.toJson(emp);
System.out.println(jsonStr);
}
}
// Employee ক্লাস
class Employee {
@Expose(serialize = true, deserialize = true)
public String name;
@Expose(serialize = true, deserialize = true)
public int age;
@Expose(serialize = false, deserialize = false)
public double salary;
public Employee(String name, int age, double salary) {
this.name = name;
this.age = age;
this.salary = salary;
}
}
আউটপুট
{
"name": "Raja",
"age": 28,
"salary": 40000.0
}
{
"name": "Raja",
"age": 28
}