কম্পিউটার

জাভাতে জ্যাকসন ব্যবহার করে @JsonValue টীকা কখন ব্যবহার করবেন?


@JsonValue টীকা পদ্ধতি স্তরে দরকারী। আমরা জাভা অবজেক্ট থেকে একটি JSON স্ট্রিং তৈরি করতে এই টীকাটি ব্যবহার করতে পারি। যদি আমরা একটি ক্রমিক বস্তু মুদ্রণ করতে চাই তাহলে toString()কে ওভাররাইড করুন পদ্ধতি কিন্তু @JsonValue টীকা ব্যবহার করে , আমরা একটি উপায় সংজ্ঞায়িত করতে পারি যেখানে জাভা অবজেক্টকে সিরিয়াল করা হয়।

সিনট্যাক্স

@Target(value={ANNOTATION_TYPE,METHOD,FIELD})
@Retention(value=RUNTIME)
public @interface JsonValue

উদাহরণ

import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonValue;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
public class JsonValueAnnotationTest {
   public static void main(String args[]) throws Exception {
      ObjectMapper mapper = new ObjectMapper();
      String jsonString = mapper.writeValueAsString(new Student());
      System.out.println(jsonString);
   }
}
// Student class
class Student {
   @JsonProperty
   private int studentId = 115;
   @JsonProperty
   private String studentName = "Sai Adithya";
   @JsonValue
   public String toJson() {
      return this.studentName + "," + this.studentId + "," + this.toString();
   }
   @Override
   public String toString() {
      return "Student[" +
            "studentId = " + studentId +
      ", studentName = " + studentName +
      ']';
   }
}

আউটপুট

"Sai Adithya,115,Student[studentId = 115, studentName = Sai Adithya]"

  1. আমরা কখন জাভাতে প্যাক() পদ্ধতি ব্যবহার করতে পারি?

  2. আমরা কখন জাভাতে সিঙ্ক্রোনাইজড ব্লক ব্যবহার করতে পারি?

  3. জাভাতে fillInStackTrace() পদ্ধতি কখন ব্যবহার করবেন?

  4. কখন একটি বিমূর্ত ক্লাস ব্যবহার করবেন এবং কখন জাভাতে একটি ইন্টারফেস ব্যবহার করবেন?