Jackson Annotation @JsonProperty সিরিয়ালাইজেশন বা ডিসিরিয়ালাইজেশনের সময় একটি প্রোপার্টি বা মেথডের ওপর ব্যবহৃত হয়। এটি একটি অপশনাল 'name' প্যারামিটার নেয় যা উপযোগী হয় যদি প্রোপার্টি নামটি JSON-এ 'key' নাম-এর থেকে ভিন্ন হয়। ডিফল্টভাবে, যদি কি নাম প্রোপার্টি নামের সাথে মেলে, তবে মানটি প্রোপার্টি ভ্যালুতে ম্যাপ করা হয়।
নিচের উদাহরণে, আমরা @JsonProperty এনোটেশন ব্যবহার করে JSON-এ একটি ফিল্ড নাম পরিবর্তন করতে পারি।
উদাহরণ
import java.io.IOException;
import com.fasterxml.jackson.databind.*;
import com.fasterxml.jackson.annotation.JsonProperty;
public class JsonPropertyAnnotationTest {
public static void main(String[] args) throws IOException {
ObjectMapper mapper = new ObjectMapper();
mapper.enable(SerializationFeature.INDENT_OUTPUT);
User user = new User("Sai", "Adithya", "9959984000", "0402358700");
String data = mapper.writeValueAsString(user);
System.out.println(data);
}
}
// User ক্লাস
class User {
@JsonProperty("first-name")
public String firstName;
@JsonProperty("last-name")
public String lastName;
@JsonProperty("mobile-phone")
public String mobilePhone;
@JsonProperty("home_phone")
public String workPhone;
public User(String firstName, String lastName, String mobilePhone, String workPhone) {
super();
this.firstName = firstName;
this.lastName = lastName;
this.mobilePhone = mobilePhone;
this.workPhone = workPhone;
}
}
আউটপুট
{
"first-name" : "Sai",
"last-name" : "Adithya",
"mobile-phone" : "9959984000",
"home_phone" : "0402358700"
}