কম্পিউটার টিউটোরিয়াল

জ্যাকসনে (Jackson) @JsonFormat ব্যবহার করে একাধিক ডেট ফরম্যাট ম্যাপ করা

Jackson একটি জনপ্রিয় জাভা-বেসড লাইব্রেরি যা জাভা অবজেক্টকে JSON এবং JSON কে জাভা অবজেক্টে রূপান্তর করে। একাধিক ডেট ফরম্যাট হ্যান্ডল করার জন্য @JsonFormat অ্যানোটেশন ব্যবহার করা হয়। এটি প্রোপার্টি ভ্যালু সিরিয়ালাইজ/ডিসিরিয়ালাইজ করার ফরম্যাট কনফিগার করে।

@JsonFormat-এর মূল ফিল্ডসমূহ

  • shape: সিরিয়ালাইজেশনের স্ট্রাকচার (JsonFormat.Shape.STRING বা NUMBER। ডিফল্ট STRING)।
  • pattern: ডেট ফরম্যাট প্যাটার্ন (SimpleDateFormat কমপ্যাটিবল)। সিরিয়ালাইজেশন এবং ডিসিরিয়ালাইজেশন দুটোইয়ে কাজ করে।
  • timezone: টাইমজোন (ডিফল্ট সিস্টেম টাইমজোন)।

উদাহরণ: একই অবজেক্টে দুটি ভিন্ন ডেট ফরম্যাট

import java.io.*;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.ObjectMapper;

public class JacksonDateformatTest {
    final static ObjectMapper mapper = new ObjectMapper();

    public static void main(String[] args) throws Exception {
        String json = "{\"createDate\":\"1980-12-08\"," +
                      "\"createDateGmt\":\"1980-12-08 3:00 PM GMT+1:00\"}";
        
        Reader reader = new StringReader(json);
        Employee employee = mapper.readValue(reader, Employee.class);
        System.out.println(employee);
    }
}

class Employee implements Serializable {
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "IST")
    private Date createDate;

    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm a z", timezone = "IST")
    private Date createDateGmt;

    // Getters, Setters, toString()...
}

আউটপুট

Employee [
  createDate=Mon Dec 08 00:00:00 IST 1980,
  createDateGmt=Mon Dec 08 07:30:00 IST 1980
]

ব্যাখ্যা:

  • createDate ফিল্ডটি yyyy-MM-dd ফরম্যাটে পার্স হয়েছে।
  • createDateGmt ফিল্ডটি yyyy-MM-dd HH:mm a z ফরম্যাটে পার্স হয়েছে (টাইম, AM/PM, টাইমজোন সহ)।
  • সিরিয়ালাইজেশনের সময় একই প্যাটার্নে আউটপুট হবে।

মেভেন ডিপেন্ডেন্সি: com.fasterxml.jackson.core:jackson-databind

  1. Selenium WebDriver-এ Java ব্যবহার করে Authentication Popup হ্যান্ডেল করা

  2. জাভাতে Stack ব্যবহার করে Queue বাস্তবায়ন করা

  3. জাভাতে কিউ ব্যবহার করে স্ট্যাক বাস্তবায়ন

  4. জাভাতে JWindow ব্যবহার করে স্প্ল্যাশ স্ক্রিন কীভাবে বাস্তবায়ন করবেন?